The Spanish outfit had a host of chances to open the scoring in the early stages, but Dortmund held on to their first-leg lead at the interval.
Karim Benzema opened the scoring for Madrid late on, before Sergio Ramos added their second with two minutes to play, but they could not find the third as Dortmund held on to advance to the final of the competition.
Read how it all unfolded in Sports Mole's minute-by-minute live commentary of the action below.
REAL MADRID: Lopez; Essien, Ramos, Varane, Coentrao; Ozil, Modric, Alonso; Ronaldo, Higuain, Di Maria
DORTMUND: Weidenfeller; Piszczek, Subotic, Hummels, Schmelzer; Blaszczykowski, Bender, Gundogan, Gotze; Reus, Lewandowski