One week on from a thrilling 2-2 draw at the Allianz Arena, Thomas Tuchel's men weathered a Real storm in the first half and stunned the Bernabeu by striking first through Alphonso Davies.
However, Manuel Neuer - who was the visitors' saviour for the most part - quickly went from hero to zero as he spilled a Vinicius Junior strike into Joselu's path for the Spaniard to score the leveller, before the ex-Newcastle United and Stoke City man just about kept himself onside to complete a barnstorming Blancos turnaround.
Borussia Dortmund are now lying in wait for Carlo Ancelotti's men in their 18th Champions League final, as the 14-time winners continue to find new ways to win in Europe's premier tournament.
Meanwhile, Bayern will end the season without a trophy to their name, and departing boss Tuchel had some questions to answer, having withdrawn both Harry Kane and Jamal Musiala before Real's astounding fightback.
While Dani Carvajal for Lucas Vazquez was the only change made by Real boss Carlo Ancelotti from the first leg, Thomas Tuchel threw up a surprise by introducing 20-year-old midfielder Aleksandar Pavlovic into the visitors' XI, demoting Leon Goretzka to the bench in the process.
Neuer excels in goalless first half
However, it was a man at the other end of the age scale who excelled for the visitors in the opening 45 minutes, where Real had their heads in their hands three times thanks to the efforts of Manuel Neuer.
With 13 minutes on the board, Vinicius Junior attempted to pick out the far corner, but Neuer brilliantly tipped his effort onto the post before also gathering Rodrygo's rather tame rebound.
The hosts were unsurprisingly threatening the most, and their cause was helped when Serge Gnabry had to be withdrawn through injury in the 28th minute, although the equally Alphonso Davies took his place.
Just one moment after Davies was introduced, Harry Kane had his first sighter of goal from the edge of the box, connecting brilliantly with a swerving volley, but Andriy Lunin covered his angles well and tipped the ball behind.
The goalkeepers were certainly stealing the limelight in the first half, and five minutes before the break, Neuer outdid himself once more; Vinicius Junior's cross missed everyone and would have nestled into the bottom corner had it not been for the German's exceptional reactions.
Joselu heroics send Real to Wembley
The Real Madrid tactic at the start of the second half was a simple one - pass to Vinicius and witness the Brazilian leave Joshua Kimmich in his wake, and the South American superstar made the German look a fool on several occasions.
Kimmich's blushes continued to be spared by Neuer, though, and it took just one foray forward from the visitors to silence the Bernabeu in the 68th minute, where Kane sprayed a fantastic long ball out to Davies.
The Canadian - who is being tipped to join Real Madrid next year - cut inside onto his right foot and found the far corner with an exquisite strike, his first Champions League goal on one of the biggest occasions of them all.
More to follow.