Real Madrid 1 Manchester City 0 (agg: 1-0)
A deflected Gareth Bale strike ended Manchester City's Champions League challenge and sent Real Madrid through to face city rivals Atletico in the final.
City midfielder Fernando inadvertently diverted Bale's 20th-minute strike into his own net at the Bernabeu to hand Real a 1-0 win both on the night and on aggregate.
City never found momentum after captain Vincent Kompany was forced off yet again early on and they had Joe Hart to thank for keeping them in contention right until the end.
Hart produced a string of impressive saves to deny a Real side bolstered by the return of Cristiano Ronaldo and that kept City hopes alive they could nick an away goal and with it victory.
But it was not to be as City never threatened with any regularity.
Their night could hardly have got off to a worse start as Kompany pulled up with what seemed a thigh injury after just eight minutes.
In a sight that has become all too familiar in an injury-plagued campaign for the Belgian, Kompany went down after overrunning the ball and immediately signalled to the bench.
It was quickly apparent his night was over and the player looked crestfallen as he gingerly rose to his feet, limped off and handed the armband to Yaya Toure.
Kompany's really perfected that dignified, head-held-high, rueful-shake-of-the-head limp off the pitch now.— Lauren 🐝 (@fateiskind) May 4, 2016
That completely undid what had been a confident start by City and they struggled to gain any meaningful possession for a prolonged spell.
Real turned up the pressure with Ronaldo, relishing the chance to run at Nicolas Otamendi and Eliaquim Mangala, heading over and sending another shot off-target.
City were unable to stem the tide and the hosts broke through as Bale burst into the area on the right and his fierce shot took a slight but critical deflection off Fernando. It flew into the roof of the net over the diving Hart.
It might have got worse for City as Pepe poked the ball past Hart from a Toni Kroos free-kick but the flag was raised for offside.
City struggled to muster a response but Jesus Navas and Bacary Sagna both got into good positions only to fail to pick out the isolated Sergio Aguero.
City's one good moment of the first half came just before the break as Fernandinho cut inside from the left but his powerful drive struck the base of the post.
Keylor Navas' Champions League record for Real Madrid:
11 clean sheets
Keylord. pic.twitter.com/nDzd9dg93n— Squawka Football (@Squawka) May 4, 2016
The visitors needed a rousing team talk at half-time from their outgoing manager Manuel Pellegrini, but as the second period began it was Hart that kept them in the game.
Hart got his body in the way to deny Luka Modric after the rest of the defence had switched off and then twice saved from Ronaldo.
Bale went close with a header that rebounded off the crossbar before the extraordinary sight of Ronaldo catching the ball and pushing it into the net - but he had already been flagged offside.
Real should have put the game out of sight but the longer they went without scoring, signs of frustration began to creep in. Kroos appeared to hit out at Fernandinho off the ball and niggly fouls crept into their game.
Knowing a goal would change everything, City pushed late on but after Aguero sent a long-range shot over, their hopes faded.