Bayern Munich will face Chelsea in the Champions League final after beating Real Madrid in a penalty shoot-out following an engrossing semi-final.
Real trailed by a goal from the first leg but two Cristiano Ronaldo strikes - the first a penalty, the second a neat low finish - put them in control.
However, Arjen Robben levelled the tie for Bayern with a spot kick of his own.
Shoot-out blow by blow
- David Alaba (Bayern) - scored 1-0
- Cristiano Ronaldo (Real) - saved 1-0
- Mario Gomez (Bayern) - scored 2-0
- Kaka (Real) - saved 2-0
- Toni Kroos (Bayern) - saved 2-0
- Xabi Alonso (Real) - scored 2-1
- Phillip Lahm (Bayern) - saved 2-1
- Sergio Ramos (Real) - missed 2-1
- Bastian Schweinsteiger (Bayern) - scored 3-1
No further goals meant a shoot-out, which Bastian Schweinsteiger settled to send his team to a final on home turf.
The midfielder was not his side's only hero in the shoot-out. Goalkeeper Manuel Neuer played a major part, saving Real's first two penalties - from Ronaldo and Kaka, while Mario Gomez and David Alaba scored for Bayern.
This was the second time in major Champions League shoot-outs that Ronaldo had missed from the spot, having also failed for Manchester United in the 2008 final against Chelsea.
It also means the two players currently rated the world's best have missed key penalties in successive days following Lionel Messi's failure from the spot for Barcelona on Tuesday.
It was a terrible end to the game for the Portuguese winger who had earlier put his side in control with two goals in the first 15 minutes.
The first came from the penalty spot as he stroked home - nervelessly on that occasion - after Alaba had handled Angel di Maria's cross in the box. His second was a superb low finish into the corner of the net after being found by Mesut Ozil in the box.
- Bookings picked up in the semi-finals mean finalists Bayern Munich and Chelsea will both be without key players.
- Bayern will be without David Alaba, Holger Badstuber and Luiz Gustavo.
- Ramires, John Terry, Branislav Ivanovic and Raul Meireles will all be missing for Chelsea.
It put Real on course for the final and a potentially memorable double, following a great week in which they have virtually secured the Spanish title with victory at Barcelona on Saturday.
It also set up the enticing prospect of a match-up between Real boss Jose Mourinho - looking for an historic third Champions League title with a third club - against his former charges Chelsea, the only one of his major clubs he has failed to lead to European glory.
Instead it is Jupp Heynckes who could now claim his second European crown on 19 May after leading Real to the trophy in 1998.
His side were simply not prepared to allow their dream of a final on home soil slip away so easily and they hit back with a penalty of their own midway through the first half when Mario Gomez tumbled in the box under a challenge from Pepe and Robben made no mistake from the spot.
It was a fitting reward for the German side, who had matched Real in the first half and shown plenty of attacking intent.
On home turf
- Two teams have previously featured in the European Cup final on their own ground.
- Roma lost 4-2 on penalties to Liverpool following a 1-1 draw at Stadio Olimpico and Real Madrid beat Fiorentina 2-0 at the Bernabeu in 1957.
Had Gomez demonstrated the sharpness that had brought him 12 goals in the competition this season Bayern could even have led at the break, but he saw a low shot saved by Casillas and glanced a header wide.
Gomez also had the clearest opportunity of a very tight second half and extra-time but instead of hitting the ball first time with the goal at his mercy, he dwelt and Real cleared.
It seemed only fitting that a tie so evenly matched over two legs should be settled by a penalty shoot-out.
After Neuer's early heroics, Casillas almost rescued his side with two saves of his own from Toni Kroos and Phillip Lahm, but Sergio Ramos then blazed over for the home side, leaving Schweinsteiger to claim his moment of glory.
The win came at a cost for the German side, who will be without Alaba, Holger Badstuber and Luiz Gustavo after they picked up bookings.
Live Text Commentary
Bastian Schweinsteiger scores a penalty. Real Madrid 1-3 Bayern Munich on penalties.124:09
Spot kick missed by Garcia Sergio Ramos.123:26
Placed penalty taken by Philip Lahm saved by Iker Casillas.122:55 Penalty
Xabi Alonso scores a penalty. Real Madrid 1-2 Bayern Munich on penalties.122:10
Penalty taken by Toni Kroos saved by Iker Casillas.121:32
Penalty taken by Ricardo Kaka saved by Manuel Neuer.120:54 Penalty
Penalty scored by Mario Gomez. Real Madrid 0-2 Bayern Munich on penalties.120:23
A save by Manuel Neuer from penalty by Cristiano Ronaldo.120:02 Penalty
David Alaba scores a penalty. Real Madrid 0-1 Bayern Munich on penalties.120:01
The first player steps forward to start the penalty shoot-out.120:00 +0:32
The match is going to penalties.117:18
Gonzalo Higuain is ruled offside. Holger Badstuber takes the indirect free kick.116:26
The referee blows for offside. Manuel Neuer takes the indirect free kick.114:52 Booking
Booking Esteban Granero goes into the referee's book.110:09 Substitution
Substitution Mesut Ozil leaves the field to be replaced by Esteban Granero.107:19
Foul by Arjen Robben on Junior Marcelo, free kick awarded. Xabi Alonso takes the free kick. Cristiano Ronaldo produces a right-footed shot from just outside the box that misses to the right of the target.105:47
Thomas Muller concedes a free kick for a foul on Alvaro Arbeloa. Kleper Pepe takes the direct free kick.105:01
The match restarts for the second half of extra time.105:01 Substitution
Substitution (Real Madrid) makes a substitution, with Gonzalo Higuain coming on for Karim Benzema.103:56 Booking
Booking Booking for Holger Badstuber.
Toni Kroos takes a inswinging corner.102:44
Corner taken right-footed by Toni Kroos from the left by-line, Garcia Sergio Ramos manages to make a clearance.102:38
The ball is delivered by Philip Lahm, Garcia Sergio Ramos makes a clearance.101:08
Free kick taken by Xabi Alonso.101:08 Booking
Booking Luiz Gustavo receives a caution.100:52
Unfair challenge on Kleper Pepe by Luiz Gustavo results in a free kick.98:56
Centre by Cristiano Ronaldo, save by Manuel Neuer.94:21
Free kick crossed by Xabi Alonso, save by Manuel Neuer.94:21 Substitution
Substitution Thomas Muller comes on in place of Franck Ribery.94:21
Foul by Franck Ribery on Cristiano Ronaldo, free kick awarded.92:53
Alvaro Arbeloa concedes a free kick for a foul on Toni Kroos. Free kick taken by Toni Kroos.90:30
Inswinging corner taken by Mesut Ozil from the right by-line.90:00 +2:22
Normal time is of over and the game goes into extra time.90:00 +2:01
Shot by Cristiano Ronaldo from 20 yards. Save made by Manuel Neuer.89:27 Booking
Booking The referee cautions Arjen Robben for unsporting behaviour.88:22
Alvaro Arbeloa fouled by Franck Ribery, the ref awards a free kick. Xabi Alonso crosses the ball in from the free kick.87:44
Franck Ribery gives away a free kick for an unfair challenge on Kleper Pepe. Alvaro Arbeloa takes the direct free kick.87:09
Arjen Robben concedes a free kick for a foul on Junior Marcelo. Xabi Alonso restarts play with the free kick.85:29
Mario Gomez takes a shot. Blocked by Garcia Sergio Ramos.82:49
Free kick awarded for an unfair challenge on Kleper Pepe by Franck Ribery. Iker Casillas restarts play with the free kick.77:20
Mesut Ozil takes a inswinging corner.74:33 Substitution
Substitution (Real Madrid) makes a substitution, with Ricardo Kaka coming on for Angel Di Maria.70:22
Luiz Gustavo challenges Mesut Ozil unfairly and gives away a free kick. Cristiano Ronaldo fires a strike on goal direct from the free kick.69:11
Karim Benzema takes a shot from just outside the penalty area clears the crossbar.67:47
Luiz Gustavo concedes a free kick for a foul on Junior Marcelo. Direct strike on goal from the free kick comes in from Cristiano Ronaldo, save by Manuel Neuer.67:37
Xabi Alonso fouled by Mario Gomez, the ref awards a free kick. Xabi Alonso takes the direct free kick.66:22
Corner from the right by-line taken by Angel Di Maria, clearance by Mario Gomez.64:34
Free kick awarded for an unfair challenge on Franck Ribery by Alvaro Arbeloa. Toni Kroos restarts play with the free kick. Headed effort from inside the area by Mario Gomez misses to the right of the target.63:25
The referee blows for offside. Manuel Neuer restarts play with the free kick.62:28
Karim Benzema concedes a free kick for a foul on Toni Kroos. Direct free kick taken by Luiz Gustavo.62:01
Toni Kroos takes a shot. Blocked by Kleper Pepe.61:31
Arjen Robben takes a shot. Blocked by Junior Marcelo.60:39
Bastian Schweinsteiger is caught offside. Alvaro Arbeloa restarts play with the free kick.59:58
Mesut Ozil challenges Franck Ribery unfairly and gives away a free kick. Bastian Schweinsteiger takes the direct free kick.58:53
Direct free kick taken by Bastian Schweinsteiger.58:53 Booking
Booking Alvaro Arbeloa is cautioned by the ref for unsporting behaviour.58:44
Franck Ribery fouled by Alvaro Arbeloa, the ref awards a free kick.58:03
Outswinging corner taken left-footed by Mesut Ozil from the left by-line.56:38
Mario Gomez takes a shot. Iker Casillas makes a save.55:36
Franck Ribery challenges Angel Di Maria unfairly and gives away a free kick. Free kick taken by Xabi Alonso. Karim Benzema takes a shot. Manuel Neuer makes a save.55:07
Luiz Gustavo concedes a free kick for a foul on Mesut Ozil. Free kick taken by Xabi Alonso.53:46
Foul by Mario Gomez on Kleper Pepe, free kick awarded. Direct free kick taken by Kleper Pepe.52:10
The assistant referee flags for offside against Karim Benzema. Manuel Neuer takes the indirect free kick.50:14
Sami Khedira fouled by Luiz Gustavo, the ref awards a free kick. Free kick taken by Sami Khedira.49:18
Bastian Schweinsteiger challenges Alvaro Arbeloa unfairly and gives away a free kick. Free kick taken by Alvaro Arbeloa.47:27
Close range headed effort by Mario Gomez goes wide of the left-hand upright.45:38
The ball is crossed by Karim Benzema.45:01
The game restarts for the second half.45:00 +1:21 Half time
Half Time The referee calls an end to the first half.45:00 +0:09
Free kick awarded for a foul by Kleper Pepe on Arjen Robben. Shot on goal comes in from Arjen Robben from the free kick, Iker Casillas makes a save.43:03
Free kick awarded for a foul by Luiz Gustavo on Mesut Ozil. Free kick crossed by Xabi Alonso.39:56
Angel Di Maria delivers the ball, Jerome Boateng manages to make a clearance.39:23
Holger Badstuber gives away a free kick for an unfair challenge on Mesut Ozil. Free kick taken by Alvaro Arbeloa.37:47
Effort on goal by Arjen Robben from just inside the penalty box goes harmlessly over the target.35:45
Free kick awarded for a foul by Mario Gomez on Angel Di Maria. Cristiano Ronaldo shoots direct from the free kick, save by Manuel Neuer.34:54
Outswinging corner taken left-footed by Mesut Ozil, Mario Gomez makes a clearance.33:37
Mario Gomez takes a shot. Save by Iker Casillas.33:15
Toni Kroos takes a shot. Blocked by Kleper Pepe.30:13
Effort from inside the area by Karim Benzema misses to the right of the goal.29:03
Bastian Schweinsteiger challenges Mesut Ozil unfairly and gives away a free kick. Direct free kick taken by Xabi Alonso. Effort from range distance by Cristiano Ronaldo goes wide of the right-hand upright.27:55
Free kick awarded for an unfair challenge on Franck Ribery by Alvaro Arbeloa. Bastian Schweinsteiger takes the free kick.26:37
Assist by Mario Gomez.26:37 Goal scored
Goal! - Arjen Robben - R Madrid 2 - 1 Bay Munich Placed penalty scored by Arjen Robben. Real Madrid 2 (3)-(3) 1 Bayern Munich.26:00 Booking
Booking Booking for Kleper Pepe for unsporting behaviour.25:47
Centre by Philip Lahm, Mario Gomez fouled by Kleper Pepe, the ref awards a Penalty.25:08
Cristiano Ronaldo delivers the ball, save by Manuel Neuer.23:12
Mario Gomez delivers the ball, clearance by Garcia Sergio Ramos.22:13
Luiz Gustavo has an effort at goal from outside the area missing to the wide right of the goal.21:25
Karim Benzema challenges Jerome Boateng unfairly and gives away a free kick. Holger Badstuber takes the free kick.20:51
Mario Gomez has a shot on goal from outside the box which misses left.19:47
Free kick awarded for an unfair challenge on Junior Marcelo by Holger Badstuber. Free kick taken by Xabi Alonso.18:59
Corner taken right-footed by Toni Kroos.15:45
Arjen Robben takes a shot. Save made by Iker Casillas.13:46
Mesut Ozil provided the assist for the goal.13:46 Goal scored
Goal! - Cristiano Ronaldo - R Madrid 2 - 0 Bay Munich Cristiano Ronaldo fires in a goal from just inside the penalty area to the bottom left corner of the goal. Real Madrid 2 (3)-(2) 0 Bayern Munich.12:18
Holger Badstuber takes a shot. Iker Casillas makes a save.11:57
Inswinging corner taken by Toni Kroos from the right by-line, clearance made by Kleper Pepe.11:46
Inswinging corner taken right-footed by Toni Kroos from the left by-line to the near post.11:18
Mario Gomez takes a shot. Save by Iker Casillas.9:57
David Alaba takes a shot.7:39
Foul by Bastian Schweinsteiger on Mesut Ozil, free kick awarded. Xabi Alonso restarts play with the free kick.7:12
Arjen Robben produces a left-footed shot from close in that goes over the bar.6:59
Handball by Angel Di Maria. Manuel Neuer restarts play with the free kick.5:31
The assist for the goal came from Angel Di Maria.5:31 Goal scored
Goal! - Cristiano Ronaldo - R Madrid 1 - 0 Bay Munich Cristiano Ronaldo scores a placed penalty. Real Madrid 1 (2)-(2) 0 Bayern Munich.4:55 Booking
Booking David Alaba is given a yellow card.4:51
Handball by David Alaba.4:30
Angel Di Maria takes a shot. Blocked by David Alaba.3:35
Free kick awarded for an unfair challenge on Franck Ribery by Alvaro Arbeloa. Manuel Neuer restarts play with the free kick.3:04
Luiz Gustavo is penalised for handball and concedes a free kick. Xabi Alonso takes the free kick.2:23
Sami Khedira takes a shot. Save by Manuel Neuer.1:49
Toni Kroos challenges Junior Marcelo unfairly and gives away a free kick. Direct free kick taken by Xabi Alonso.0:45
Foul by Luiz Gustavo on Cristiano Ronaldo, free kick awarded. Direct free kick taken by Xabi Alonso.0:00
The ref blows the whistle to begin the match.
Live data and text provided by our data suppliers