Ronaldo was next to go close, this time sending a close range volley straight against Weidenfeller when he looked certain to score.
With the home side consistently failing to take its chances, Dortmund began to grown in stature and Jakub Blaszczykowski should have done better after meeting Lukasz Piszczek's cutback.
Dortmund, which drew 2-2 in Madrid during the group stage of the competition, continued to create opportunities after the break and Lewandowski fired over when well placed.
The Polish striker should have given his side the lead on the night just minutes later when he burst clear of the Real defense, but his thunderous effort cannoned against the crossbar and bounced down to safety.
The German side then went close again when Ilkay Gundogan's close-range effort forced Diego Lopez into a stunning save to keep the scores level.
Mourinho threw on Kaka and Benzema to try and inspire Real and the pair gave the home side a fresh impetus going forward.
Twice Angel Di Maria went close before Real finally made the breakthrough with eight minutes remaining.
After watching Lewandowski go close at the other end, the home side broke at pace and Benzema swept the ball past Weidenfeller after connecting with Ozil's pass.
Benzema then set up Ramos six minutes later to leave Real within touching distance, but that elusive goal just wouldn't come.
"It's a shame," Ramos told reporters. "Sometimes you lose, that is football.
"In Dortmund we should have played the way we did tonight. We feel for the fans. It's a shame to have been so close but the missed chances in the first half were costly."
For Mourinho, the tie was lost on German soil a week ago, a result which condemned Real to becoming the first team to suffer three consecutive semifinal defeats.
He told ITV: "In football you win or you lose. I think we could have won. They had a couple of big chances but that was a consequence of the way we were playing late on where we risked everything.
"Today we were a team with character and desire and we could have done it.
"I don't forget the first match, we were very bad and we were punished because of the result of the first leg."
The prospect of an all-German final now looms large with Bayern Munich taking a 4-0 lead to the Camp Nou to face Barcelona Wednesday.
But while Bayern still has work to do, Dortmund can now relax in the knowledge they have booked a dream date with destiny, despite suffering a first defeat of the competition.
"We knew if they scored a goal in the first half, the crowd would get euphoric and loud," Mats Hummels told ITV.
"We had the game under control but with the goal the whole game changed - like the game against Malaga.
"It's unbelievable; something everyone in the team dreamed of since being an child. Some of us are still children. We are looking forward to Wembley."