With the sides locked at 3-3 on aggregate after Real's 2-1 win, Bayern goalkeeper Manuel Neuer was the hero for the Bundesliga side when he saved Cristiano Ronaldo and Kaka's spot kicks in a dramatic shootout.
Real keeper Iker Casillas then revived Real's hopes by saving efforts from Toni Kroos and Philipp Lahm but after Sergio Ramos skied his penalty over the bar Bastian Schweinsteiger rifled home to send the Bavarians through.
Bayern will play Chelsea in next month's final in Munich after the London club eliminated holders Barcelona 3-2 on aggregate on Tuesday.