Real Madrid squeezed into another Champions League final after a thrilling 2-2 draw with Bayern Munich on Tuesday night at the Bernabeu, going through 4-3 on aggregate.
Bayern took the lead early on through Joshua Kimmich's close-range finish (3), before Karim Benzema headed home at the far post to level it up (11).
It was 2-1 just after the break as goalkeeper Sven Ulreich's nightmare error from a back pass allowed Benzema to tap into an empty net (46), but James Rodriguez, on loan at Bayern from Real, converted from a tight angle (63) to make it 2-2 on the night and 4-3 to Real on aggregate.
Real Madrid: Navas (9), Lucas Vazquez (5), Varane (7), Ramos (6), Marcelo (7), Kovacic (6), Kroos (6), Modric (7), Asensio (7), Benzema (8), Ronaldo (6)
Subs: Bale (6), Casemiro (5), Nacho (NA)
Bayern Munich: Ulreich (4), Kimmich (8), Sule (8), Hummels (6), Alba (8), Thiago (8), Tolisso (8), Rodriguez (7), Muller (7), Lewandowski (6), Ribery (7)
Subs: Wagner (5), Martinez (NA)
Man of the match: Keylor Navas
Bayern could not find that vital third away goal, thanks to several superb Keylor Navas saves, and the result means Real will play either Liverpool or Roma in the final on May 26 in Kiev, looking for their third straight Champions League crown and fourth in five years.
In a manic opening period, Bayern took the lead after just three minutes through Kimmich, stroking home from eight yards as the ball fell kindly after Sergio Ramos had failed to clear a cross.
But Real levelled on 11 minutes through Benzema, simply heading home at the far post from Marcelo's deep cross, which caught out the Bayern defence.
Isco and Carvajal were out for Real with injuries, meaning Vazquez started at right back, and Kovacic also made the XI. For Bayern there were three changes, with Boateng and Robben out and Rafinha on the bench; Sule, Thiago and Tolisso came in.
Bayern should have gone into the break ahead on the night and level in the tie, but James blazed over with a close-range volley after Navas had saved from Robert Lewandowski.
Real went 2-1 ahead on the night and 4-2 on aggregate in bizarre fashion just after the break as Ulreich let a Thiago back pass run past him, seemingly caught between picking the ball up and kicking it, allowing Benzema to tap into an empty net.
Navas then produced a fine save from David Alaba's deflected effort, before Ronaldo uncharacteristically blazed over from close range on the volley.
James then came back to haunt Real at the Bernabeu to level the game on the night and bring Bayern to within a goal of going ahead, slipping home from an angle 10 yards out after Raphael Varane had failed to clear a Niklas Sule cross.
From then on, it was the Keylor Navas Show. First, the Costa Rican tipped away Corentin Tolisso's half-volley, then he scrambled to keep Thomas Muller's far post header out.
Navas, who is likely to replaced at Real No 1 this summer, showed immense bravery in the final stages to deal with several aerial balls, as the hosts held on to reach yet another Champions League final.
Zinedine Zidane: "It's in the DNA of the club. We never stop fighting up to the very last minute, just as the Bayern players did tonight."
Jupp Heynckes : "We are very disappointed. My team played an outstanding game. I haven't seen Bayern play as well as that for years. At this high level you can't make the sort of mistakes we made after half-time."
- Real Madrid have reached their 16th European Cup/Champions League final - more than any other side.
- Zinedine Zidane is the first manager to reach three consecutive Champions League finals since Marcello Lippi between 1996 to 1998.
- Under Zinedine Zidane, Real Madrid have never been knocked out in the Champions League, progressing in all nine of their two-legged Champions League ties as well as winning the two finals they've appeared in.
- James Rodriguez is the 7th player in Champions League history to both score for and against Real Madrid (also Beckham, Morata, van Nistelrooy, Morientes, Robben, Zamorano).
Man of the match - Keylor Navas
He may be criticised for never, ever catching the ball from crosses, but Navas is the main reason Real are heading to Kiev later this month.
The Costa Rican made no less than eight saves on Tuesday night, more than half of which were superb, but his bravery to deal with several late balls capped off an outstanding performance. He most likely will not be Real's No 1 next term, but he played a huge part in squeezing them through against Bayern.
Real Madrid now go to the Nou Camp to face newly-crowned La Liga champions Barcelona on Sunday night, live on Sky Sports Football.
Bundesliga champions Bayern have two league games remaining against Cologne (away) and Stuttgart, before the German Cup final against Eintracht Frankfurt on May 19.