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 smashed in a rebound after Toni Kroos’ fierce shot 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.
Credit Bbc sports