Match ends, Atlético de Madrid 2, Real Madrid 1.
Atletico Madrid 2-1 Real Madrid (agg 2-4)
Defending champions Real Madrid held off a spirited Atletico Madrid to set up a meeting with Juventus in next month's Champions League final in Cardiff.
Atletico, trailing 3-0 from the first leg, stormed into an early 2-0 lead on the night through Saul Niguez's header and Antoine Griezmann's cheeky penalty.
But Real grabbed a vital away goal when Isco poked in a rebound after Toni Kroos' fierce shot - following a brilliant run by Karim Benzema - was saved.
It checked Atletico's momentum and left them needing three more goals to reach a third Champions League final in four seasons.
Chances were scarcer for both teams after the break, although home substitute Kevin Gameiro missed two presentable chances to give Atletico a glimmer of hope.
Ultimately, the damage from the first leg was irreversible as Real beat their neighbours in the competition for the fourth successive season.
Zinedine Zidane's team, attempting to become the first team to win the Champions League twice in a row, will meet Juventus at the Principality Stadium on Saturday, 3 June.
Too little, too late for Atletico
Most people thought this tie was a foregone conclusion after Atletico were outclassed at the Bernabeu eight days ago.
Los Rojiblancos, who managed just one shot on target in a limp away performance, had other ideas.
Knowing they needed at least three goals to stand any chance of progressing, Diego Simeone's side tore out of the blocks in the opening 20 minutes.
Atletico hassled and harried the visitors, creating gaps in a panicky away defence.
Real keeper Keylor Navas had already saved from Koke inside the opening five minutes before the Atletico midfielder swung in a right-wing corner which Saul met at the near post to powerfully head in.
The visitors had not conceded twice inside the opening 20 minutes of a Champions League match since 2004 - but Griezmann ended that record after Fernando Torres was bundled over by Raphael Varane's clumsy tackle.
Griezmann missed a penalty against Real in last year's Champions League final, as well as two more spot-kicks in La Liga this season, but his Paneka-style chip sneaked past the diving Navas.
La Liga leaders Real looked flustered as the noise was ramped up by the home supporters.
However, they knew one away goal would completely change the complexion of a compelling match - and Isco's opportunist strike did exactly that.
Madrid derby waves farewell to the Calderon
While the chances of Atletico thrashing their illustrious neighbours appeared slim, there was a recent precedent to which Simeone and his players looked for inspiration.
Simeone's side, then the defending La Liga champions, inflicted Real's heaviest league defeat in over four years when they produced a scintillating 4-0 home win in February 2015.
Their fans hoped they could replicate that score and provide what they thought would be a fitting farewell to the Calderon as it hosted a Champions League game for the final time.
Atletico moved into the bowl-like stadium in 1966, but will leave this summer for a state-of-the-art 76,000-seat stadium on the eastern outskirts of the Spanish capital.
The Calderon, famed for its atmosphere, was a cauldron of noise as the home supporters urged their team on.
For many years, the stadium hosted Atletico sides - including the one relegated in 2000 - who struggled to emerge from their shadows of their illustrious neighbours.
So, despite Atletico changing the dynamic in recent years under Simeone, it was perhaps quite apt their final meeting with Real there ended in pride but, ultimately, disappointment.
Cardiff set for heavyweight encounter
Eleven-time winners Real Madrid have been crowned European champions more than any other club, so it is perhaps not surprising it is they who are one match away from becoming the first team to retain the Champions League.
Real's progress to their second successive final has been relatively smooth, though they did need two controversial goals to overcome quarter-final opponents Bayern Munich in extra time.
That victory was sealed by a hat-trick from Portuguese superstar Cristiano Ronaldo, who then put Zidane's side on the verge of the final with another treble against Atletico.
The three-goal cushion gave a margin of error to Real and, after a wobbly opening 20 minutes, they regained control of the semi-final after Isco's strike.
Another giant of the European game stands in their way.
Italian champions Juventus, who progressed with a 4-1 aggregate win over Monaco, are attempting to win their first Champions League title in 21 years.
The final will be a replay of the 1998 showpiece, when Real were crowned European champions for the seventh time - after a 32-year wait - thanks to Predrag Mijatovic's goal.
And it means a reunion for Madrid manager Zidane, who played in that final for the Italian side, with his former club.
"It has been a very important club for me in my career and I keep it as a club that has given me everything. It is going to be something special," said the Frenchman, who played for Juve between 1996 and 2001.
The kings of Europe...
- Real Madrid have reached the European Cup/Champions League final for a record 15th time, ahead of AC Milan (11)
- Real have reached two successive finals for the first time since they won the trophy five times in a row between 1956 and 1960
- The Spanish club need just one more goal to become the first team to score 500 in the Champions League
- Real have won 11 of their 14 European Cup finals
- Juventus have won the trophy twice, losing a record six finals
- Both Real and Juventus join AC Milan on a record six final appearances in the Champions League
- Atletico became the first team to be eliminated by the same opponents four times in a row
'Cardiff here we come!' - post-media reaction
Real Madrid manager Zinedine Zidane:
"We are very happy, happy to reach the final again. It is all merited, especially for the players who have worked so far. It's deserved.
"We had difficulties at the beginning, we got two goals, but we did not have to worry. We knew we were going to have chances.
"We knew they would come out strong, with pressure. But after 25 minutes it changed completely. In the second part, we found our game."
Atletico Madrid captain Gabi: "The performance was the least we could do. I thought we were excellent in the first half. A moment of genius from Benzema took away from the dream but we never stopped fighting and I'm proud of everyone."
- 24GiménezSubstituted forParteyat 57'minutes
- 15SavicBooked at 6mins
- 2GodínBooked at 34mins
- 3Filipe Luís
- 14Fernández ArenasBooked at 37mins
- 6KokeSubstituted forCorreaat 76'minutesBooked at 85mins
- 9TorresSubstituted forGameiroat 56'minutes
- 5Cardoso Mendes
- 23DaniloBooked at 4mins
- 4RamosBooked at 34mins
- 14CasemiroSubstituted forVázquezat 77'minutes
- 22IscoSubstituted forMorataat 88'minutes
- 9BenzemaSubstituted forAsensioat 76'minutes
- 7Cristiano Ronaldo
- Cüneyt Çakir
- Shots on Target
Second Half ends, Atlético de Madrid 2, Real Madrid 1.
Attempt missed. Yannick Carrasco (Atlético de Madrid) right footed shot from outside the box is high and wide to the right.
Corner, Atlético de Madrid. Conceded by Keylor Navas.
Attempt saved. Antoine Griezmann (Atlético de Madrid) left footed shot from the left side of the box is saved in the bottom right corner. Assisted by Yannick Carrasco.
Corner, Real Madrid. Conceded by Saúl Ñíguez.
Attempt blocked. Toni Kroos (Real Madrid) right footed shot from outside the box is blocked. Assisted by Lucas Vázquez.
Offside, Atlético de Madrid. Gabi tries a through ball, but Diego Godín is caught offside.
Attempt missed. Gabi (Atlético de Madrid) right footed shot from outside the box is close, but misses to the left. Assisted by Diego Godín.
Attempt missed. Cristiano Ronaldo (Real Madrid) left footed shot from outside the box is too high.
Substitution, Real Madrid. Álvaro Morata replaces Isco.
Ángel Correa (Atlético de Madrid) is shown the yellow card for a bad foul.
Cristiano Ronaldo (Real Madrid) wins a free kick in the attacking half.
Foul by Ángel Correa (Atlético de Madrid).
Lucas Vázquez (Real Madrid) wins a free kick on the right wing.
Foul by Filipe Luis (Atlético de Madrid).
Toni Kroos (Real Madrid) wins a free kick in the defensive half.
Foul by Saúl Ñíguez (Atlético de Madrid).
Marcelo (Real Madrid) wins a free kick in the defensive half.
Foul by Thomas Partey (Atlético de Madrid).