Bayern Munich will meet Chelsea in the Champions League final next month after beating Real Madrid 3-1 on 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 of the shootout, but Real were handed a lifeline as the Spanish captain saved from Toni Kroos and Philipp Lahm.
However, after Sergio Ramos had blasted his attempt over the bar, Schweinsteiger was calmness personified as he 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.
Ronaldo doubled his tally on 15 minutes 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.
Generally both sides tightened up significantly in the second half and opportunities were far harder to come by at either end as the game went into extra time.
With minutes of extra time remaining, Real had claims for a third penalty of the evening turned down. Instead Esteban Granero was booked for going down too easily under pressure from Neuer.
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.
It is a match they will play without three of their semi-final starters though.
Alaba, Holger Badstuber and Luiz Gustavo all picked up yellow cards which will see them banned for next month's showdown.