Barcelona will play Juventus in European football's Champions League final.
Italian giants Juventus shattered Real Madrid's dream of a record-extending 11th European crown with a 1-1 draw in their semi-final second leg in Spain sent them through 3-2 on aggregate.
Cristiano Ronaldo netted a 23rd-minute penalty at the Bernabeu to give Real the upper hand before former Real player Alvaro Morata silenced the home fans when he rifled a shot into the roof of the net off goalkeeper Iker Casillas 12 minutes into the second half.
Morata, a Real academy graduate, also scored in the Italian champions' 2-1 win in the first leg in Turin and Juve will bid for their third triumph in Europe's elite club competition when they face Barcelona in Berlin on June 6th.
Real pushed desperately for the goal that would have taken the game to extra time but squandered a host of chances and Juve remained on course for a treble of European and domestic league and Cup titles.
After Ronaldo's penalty following a clumsy Giorgio Chiellini foul on James Rodriguez, Real could have been further ahead at the break.
Ronaldo, Gareth Bale and Karim Benzema all wasted chances on a warm night in the Spanish capital with Real dominating as expected and the baying home fans urging on their heroes.
The match opened up in the second half and Juve's attacking efforts were rewarded when Morata found space in the penalty area after a clever layoff from Paul Pogba.
Chances came thick and fast at both ends and Rodriguez powered a shot narrowly over the crossbar, Real keeper Iker Casillas saved brilliantly from Claudio Marchisio and Bale nodded over when well placed.
Ronaldo, who is level with Barca forward Lionel Messi at the top of the 2014-15 scoring charts, became the first player to score at least 10 goals in four different Champions League campaigns.
The Portugal captain jointly holds the all-time goals record for the competition of 77 with Argentine Messi.
Barcelona beat Bayern Munich in their semi-final.