Bayern Munich will meet Chelsea in the Champions League final next month after beating Real Madrid 3-1 on penalties.
The score was 2-1 to Real after extra time, meaning an aggregate scoreline of 3-3 necessitated penalties. Bastian Schweinsteiger scored the decisive spot-kick after Manuel Neuer had made two stunning saves to deny Cristiano Ronaldo and Kaka.
David Alaba and Mario Gomez had sent Iker Casillas the wrong way to put Bayern in control, but Real were handed a lifeline as the Spanish captain saved from Toni Kroos and Philipp Lahm. After Sergio Ramos had blasted over the bar, Schweinsteiger slammed the ball home to send Bayern into their second final in three years.
Real had erased their 2-1 deficit from the first leg within five minutes as Alaba was somewhat harshly punished for handling Angel Di Maria's shot and Ronaldo slotted home the resulting penalty.
The visitors responded positively though and should have been level within minutes as Alaba nearly made amends for conceding the penalty with a brilliant run and cross but somehow Arjen Robben scuffed the ball over the bar from only yards out.
Franck Ribery was then denied by a brilliant saving challenge from Sami Khedira after Casillas had spilled a Gomez shot from 20 yards, but only 15 minutes had passed when Ronaldo doubled his tally and Madrid's advantage on the evening as he raced on to a brilliant through-ball from Mesut Ozil and stroked the ball past Neuer from the edge of the area.
The tie was back on a knife-edge 12 minutes later though as Pepe was penalised for a push on Gomez as he tried to get on the end of Kroos' cross into the box. Robben stepped up and his spot-kick just sneaked past Casillas, who got a hand to the ball.
The Real captain was called into action again in the final action of the first-half as he palmed away Robben's free-kick and the visitors came close again right at the start of the second period as Gomez's header from Lahm's cross crept inches wide.
The home side regained the initiative at the start of extra time but tiredness seemed to affect their decision making in the final third. Real had claims for a third penalty turned down as instead Esteban Granero was booked for going down under pressure.
And that decision was to prove vital as Ronaldo, Kaka and Ramos all failed from the spot to hand the Germans a place in the final on May 19.