Some fabulous control by the Polish striker allowed him to find Thomas Mueller, whose cross was only partially cleared by an off balance Sergio Ramos. Kimmich pounced.
Ronaldo had a chance to level minutes later. However, it was not long before Real carved out another opportunity.
A brilliant Marcelo cross towards the far post found the unmarked Benzema, who calmly nodded the ball past Ulreich.
As halftime approached, Bayern continued to exploit the flanks left exposed by Marcelo and Vazquez's constant marauding runs.
It was another cross from Kimmich on the right which again caused Real trouble, this time clearly striking Marcelo's arm inside the area.
Despite furious protests -- which continued down the tunnel at halftime -- from the Bayern players, referee Cuneyt Cakir waved away the appeals with a stern frown.
69% possession, 15 chances, but Bayern still out
With Bayern's players fired up and feeling aggrieved, the second half was on a knife edge -- for all of 20 seconds.
Corentin Tolisso's simple back pass to Ulreich seemed harmless enough, but the goalkeeper allowed the ball to pass underneath his body, which gave Benzema a tap-in to an empty net.
Scoring twice in Madrid did not seem beyond Bayern in such form, but ultimately Rafinha's costly error in the first leg and Ulreich's Tuesday proved costly.
Following James's leveller, Mueller even had a chance to put his side through in injury time but, despite dominating with 69% possession and creating 15 chances, Bayern was unable to find that crucial third goal.
Benzema will take the plaudits for his two goals, but Navas -- who came in for criticism after the first leg -- will certainly be the toast of Madrid after numerous spectacular saves.
Real must now wait until Wednesday's second semifinal, between Roma and Liverpool, to find out who it will face in the final on May 26.