Sergio Ramos took advantage of some woeful marking to head home twice from set pieces in the opening 20 minutes before Cristiano Ronaldo put the finishing touch to a devastating counter-attack in the 34th minute in a blistering opening half from the Spanish giants.
Ronaldo added a fourth with a late free-kick and the only downside for Carlo Ancelotti’s side, who will face either city rivals Atletico Madrid or Chelsea and former boss Jose Mourinho in the Lisbon final next month, was the needless booking for midfielder Xabi Alonso which rules him out of the showpiece.
Pep Guardiola’s reigning European champions had dominated possession in the first leg at Santiago Bernabeu last week, only to leave Spain with a 1-0 deficit after Karim Benzema struck.
Any hopes they had of working their way back into the tie were obliterated by a ruthless display from Real, who are targeting a record 10th European crown, although the Bundesliga champions were complicit in their own downfall.
Only 50 seconds were on the clock when Ronaldo fed Angel Di Maria, but his low shot was comfortably saved by Manuel Neuer. With eight minutes gone, the Bayern keeper had an escape when he raced from his area to head clear only to find Gareth Bale, but the Welshman fired his long-range effort well over the bar.
The Allianz Arena was stunned in the 16th minute when Luka Modric’s corner saw Ramos arrive unchallenged between David Alaba and Dante to power a header home from eight yards out.
Dante was booked soon after for a crunching challenge on Ronaldo, before Bayern’s testing task became mission impossible when Di Maria’s free-kick into the box was flicked on by Pepe and Ramos arrived to head home, having got the wrong side of Mario Mandzukic.
Guardiola’s stunned side looked to respond and a swift turn and shot by Franck Ribery after a pass from Philipp Lahm flew across the face of the under-employed Iker Casillas’ goal and wide, while at the other end, Ronaldo went one-on-one with Dante but dragged his effort from outside the box past the post.
With Bayern pressing forward they left themselves exposed at the back and Real were ruthless on the counter. Benzema sent Bale racing through and he squared for Ronaldo who rolled first time beyond Neuer for his 15th Champions League goal of the season.
Ronaldo almost made Neuer pay for another poor clearance only to see his shot bounce over the bar, before a distraught Alonso was cautioned for sliding in on Bastian Schweinsteiger, moments after Ramos – who was walking the same disciplinary tightrope – had escaped unpunished following a heavy tackle on Lahm.
Guardiola withdrew striker Mandzukic and brought on midfielder Javi Martinez at the interval and Bayern managed to test Casillas on several occasions in the second period, although the tie was already beyond them.
Ramos had to stoop to deflect Alaba’s shot from inside the box over the bar and then Arjen Robben beat Casillas’ full-length dive with a curling effort from range which flew inches wide of the upright.
Ribery drove into the area and tested the veteran goalkeeper again on the hour mark and then the Spain international was well placed to deal with a routine effort from distance by Toni Kroos.
In the 72nd minute, Ribery was replaced by Mario Gotze and Claudio Pizarro joined the fray for Thomas Muller, while match-winner Ramos made way soon after to guarantee his place in the final as Ancelotti sent on Raphael Varane.
Kroos lashed another long range effort over the top, while Di Maria came close to picking out Bale after Bayern’s defence switched off again, before Ronaldo set the seal on a stunning success as his low free-kick in the closing moments beat both the wall and Neuer.