Atletico Madrid reached their second Champions League final in three years by edging past Bayern Munich on away goals in a pulsating semi-final.
Atletico keeper Jan Oblak saved Thomas Muller's low penalty, before Antoine Griezmann coolly fired in an equaliser.
Robert Lewandowski's header set up a tense finish, but Atletico held on after Fernando Torres missed a penalty.
Bayern, backed by a vociferous home crowd, desperately pressed for a third goal that would send them through.
However, they could not find a way past Oblak, who blocked David Alaba's 20-yard volley in injury time.
Atletico, aiming to be crowned European champions for the first time, will meet Manchester City or Real Madrid in the final in Milan on 28 May.
City face Atletico's neighbours at the Santiago Bernabeu on Wednesday after the teams drew 0-0 in last week's first leg.
Decisions, decisions, decisions...and drama
There was a tense atmosphere throughout the second leg in Munich, with the tie delicately balanced until the final whistle.
Bayern's opening goal, Muller's penalty miss and tempers flaring on the touchline - Pep Guardiola and Diego Simeone animatedly disagreeing over a decision - had already made for an entertaining first half.
Griezmann's vital away goal and Lewandowski's close-range finish - nodding in Arturo Vidal's headed cross from four yards - pointed towards even more drama in the final 15 minutes.
However, the anticipated Bayern onslaught failed to materialise.
Instead, Atletico won a penalty, despite Torres being fouled outside the box, before Simeone lost his cool again when he appeared to strike a member of his own staff.
Still Bayern needed only one goal to progress - and had five minutes of added time to score it. But Atletico survived, sparking wild celebrations among Simeone and his players.