Reigning European champions Real Madrid reached their third successive Champions League final as they edged out Bayern Munich in a thrilling semi-final second leg.
Trailing 2-1 after the first leg in Germany, Bayern needed a win at the Bernabeu to reach the final but it finished 2-2 as Real clinched a 4-3 aggregate victory.
Joshua Kimmich scored early on for the German champions from six yards out, before Karim Benzema headed in for Real from Marcelo's fine left-wing cross eight minutes later.
A second for Benzema, after a horrendous mistake from Bayern goalkeeper Sven Ulreich, put Real in control, although Bayern's on-loan James Rodriguez then scored against his parent club to set up a dramatic finale.
Bayern had chances to win it, but Corentin Tolisso and Thomas Muller's efforts were saved by Keylor Navas and Mats Hummels headed wide as the Spanish side held on.
Real will face either Liverpool or Roma in the final in Kiev, Ukraine, on 26 May with Jurgen Klopp's side leading 5-2 before Wednesday's second leg in Rome.
Under-pressure Zidane takes Real to the final again
It has been a difficult season for Real boss Zinedine Zidane, whose future has been questioned as Barcelona have run away with La Liga, wrapping up the Spanish title with four games to go, while Real are only third, 15 points behind.
But the Champions League has increasingly looked like Zidane's salvation. They only finished second in their group, losing 3-1 to Tottenham at Wembley in November, but wins in the knockout stages against Paris St-Germain, Juventus and now Bayern have kept them on course to become European champions for a 13th time.
Zidane restored Benzema to the starting line-up after the Frenchman, who had only scored once in his previous 12 games, had been a substitute for the first leg. That meant Gareth Bale started on the bench despite scoring in Real's 2-1 league win over Leganes on Saturday.
But the decision proved to be the right one as Benzema's two goals took Real into their fourth Champions League final in five seasons.
After Kimmich's early goal had made it 2-2 on aggregate, the Frenchman leapt high to head home powerfully from Marcelo's excellent delivery.
However, there was a huge slice of luck for Real and Benzema's second. In the first minute of the second half, there appeared to be no danger as Tolisso rolled the ball back towards Ulreich.
But the goalkeeper thought about picking up the backpass, realised he could not, and saw the ball go under his arm to leave Benzema with a simple tap-in.
That did not prove the end of the drama though. Rodriguez pulled one back for Bayern, leaving them needing one more to progress on away goals. But Zidane's men held on to move into the final; now only Liverpool or Roma stand between him and his third Champions League title in three years.
Bayern fall short in Europe once more
Bayern played their part in an enthralling clash at the Bernabeu, and shocked a capacity crowd by scoring after only three minutes to make it 2-2 on aggregate.
Sergio Ramos made a mess of his attempted clearance at the near post from Thomas Muller's right-wing delivery and the ball fell kindly for Kimmich to score for the second time in the tie after he had also opened the scoring at the Allianz Arena.
Benzema's double looked to have killed off Bayern's hopes, before Rodriguez made it 2-2 on the night, shooting through Navas' legs after the goalkeeper had saved his first shot.
Bayern, who had been the better team for the majority of the match, had 27 minutes and injury time to score the goal that would have taken them through on away goals.
But Tolisso and Muller were both denied by excellent reflex saves by Navas, and Hummels should have hit the target when unmarked at the back post in injury time but headed wide.
Bayern have dominated domestically this season, winning the Bundesliga with five games to spare and sitting 24 points clear of second-placed Schalke.
However, this was another failure at the highest level of European competition and they have now gone out in the semi-finals in four of the past five seasons since lifting the trophy in 2013.
'Real's name is on the trophy' - analysis
Chris Waddle, former England winger on BBC Radio 5 live
What a fantastic advert for football. I felt for Bayern, the best team over the two legs but you have got to put the ball in the net.
Real hung in there and got their reward. I think Real Madrid's name is on the trophy.
We keep taking about Robert Lewandowski and Thomas Muller being world class. They score goals and goals for their national teams and Bayern.
Tonight they haven't put the ball in. They had chances, been in great positions and they haven't put the ball in.
Real Madrid have got quality players - I just think Zidane got the balance wrong tonight. Modric at right-back at times, I didn't get that.
The one thing is, they haven't played well but scored four goals over the two legs. Give them chances, they will take them.
Yet another European final for Real Madrid - the stats
- 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 have appeared in.
- Real Madrid's Keylor Navas made eight saves against Bayern Munich, his highest tally in a Champions League knockout game.
- Sergio Ramos made six clearances in the first half, more than all Bayern Munich players combined (five).
- Zidane is the first manager to reach three consecutive Champions League finals since Marcello Lippi between 1996 and 1998.
- Real Madrid have reached their 16th European Cup/Champions League final - more than any other side.
- James Rodriguez is the seventh player in Champions League history to score both for and against Real Madrid (also David Beckham, Alvaro Morata, Ruud van Nistelrooy, Fernando Morientes, Arjen Robben and Ivan Zamorano).
- Bayern Munich have failed to keep a clean sheet in their past 14 Champions League away games, their longest such run in the competition.
'We played brilliantly' - what they said
Real Madrid manager Zinedine Zidane said: "In football you have to suffer and especially in the Champions League.
"We know you can't get to the final of it without suffering, and it's nicer this way. It's not great for your heart, though.
"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."
Bayern Munich manager Jupp Heynckes said: "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.
"We played brilliantly. I think over the course of the two legs we were the better team, but as so often happens in football the game was decided by the small details."
Credit: The BBC