UEFA Champions League: Real Madrid 2 Borussia Dortmund 0 (agg 3-4)
Borussia Dortmund are through to the UEFA Champions League final after securing a 4-3 aggregate win over Real Madrid.
Following their stunning 4-1 success in Germany a week ago, the visitors were stubborn throughout, with Madrid only able to breach their backline in the final 10 minutes through Karim Benzema and Sergio Ramos.
Jose Mourinho made two changes from the first leg, bringing in Michael Essien and Angel di Maria for Pepe and Sami Khedira, while Dortmund went with the same XI that had won so convincingly at the Westfalenstadion.
The hosts exploded into the game and could have taken the lead as early as the fourth minute. Luka Modric robbed Marcel Schmelzer and touched the ball to Mesut Ozil, who found Gonzalo Higuain first time in the box, but Roman Weidenfeller rushed out to smother the Argentine.
Ronaldo then blasted an effort over and hit a swivelling volley at Weidenfeller, either side of an opening for Robert Lewandowski, before Dortmund were handed an early blow as Mario Gotze was forced off with a hamstring strain and replaced by Kevin Grosskreutz.
Madrid were swarming forward and wasted yet another gilt-edged chance as Higuain's flick sent Ozil through on goal but, with Ronaldo waiting square for a tap-in, the German screwed his effort wide at the near post.
In the build-up to Tuesday's game Mourinho had lamented Real's soft approach to handling Lewandowski in the first leg, but his side went about roughing up the Pole where they could at the start of the second. Fabio Coentrao was the first to go into Howard Webb's notepad for a crunching challenge on the striker, while he was also caught by a stray Sergio Ramos elbow in an aerial challenge.
The visitors smelt blood and went after an early goal in the second half. Lewandowski blazed over after good work from Jakub Blaszczykowski on the left and had an even better chance just a minute later as Reus slipped him through on goal, but the number nine rattled the crossbar from eight yards.
Dortmund kept the pressure on and Madrid had Diego Lopez to thank as he thwarted Ilkay Gundogan from point-blank range after Marco Reus and Grosskreutz's one-two had left Raphael Varane for dead.
Madrid were struggling, with Mats Hummels and Neven Subotic proving nigh-on impossible to breach despite wave after wave of attack.
Indeed it was Dortmund who continued to make the better of the chances and they should have killed the tie off for good with 15 minutes to play. Reus danced into the box and, with a sight of goal, squared for Lewandowski, but Varane threw himself in front of the Pole's effort to preserve the stalemate on the night.
But the home fans were given cause for hope in the 83rd minute as Khedira played Ozil in down the left flank and crossed for Benzema, who finished high into the net.
With two minutes left on the clock, Madrid had another. Benzema did magnificently to control a high ball on the bye-line and cut back to Ramos, who thumped the ball past Weidenfeller, but it was not enough for the hosts and Dortmund will go on to face Barcelona or Bayern Munich, who are 4-0 up from the first leg, at Wembley in May.