Los Blancos rang the changes as Karim Benzema returned, with Gareth Bale starting from the bench. Marco Asensio came in for Isco, whilst Lucas Vazquez and Mateo Kovacic replaced Dani Carvajal and Casemiro respectively.
Faced with a daunting task, Bayern recalled Niklas Sule for Jerome Boateng and Corentin Tolisso took the position of Javier Martinez as David Alaba returned as well.
The nerves of Real were put on edge after Joshua Kimmich made a late run into the box to blast home the opener after Sergio Ramos failed to clear his lines on three minutes.
Their nerves were eased soon after, though, when Benzema got on the end of a cross from Marcelo to head home after 11 minutes.
Los Blancos constructed a few telling passes while breaking on the counterattack with consummate ease, but were lacking their usual cutting edge.
Marcelo got at the end of such a move on 27 minutes, but instead of finding an unmarked Cristiano Ronaldo, he opted for a shot at goal which Sven Ulrich pulled away for a corner.
Thomas Muller turned inside the box after a cross by Franck Ribery but he shot tamely at Keylor Navas on 31 minutes.
Brilliant play from Hummels all the way from centre-back threaded a pass to Robert Lewandowski, who played in Muller to crack the crossbar, with James Rodriguez unable to bury the follow-up.
Ronaldo got out wide and picked a long ball, which he brought down nicely before letting fly to force Ulreich to get down to make the save on 38 minutes.
Ramos rose for a corner a minute later looking to hand Madrid the lead for the first time in the game, but he could only find the side-netting.
However, Benzema completed his brace right at the start of the second half, tapping into an empty net after an incredible howler from the keeper, which saw the ball roll under his body from a back-pass.
The Bavarians almost found the equaliser five minutes later, but Navas made an astounding one-handed save off a shot by Kimmich.
Following a succession of near-misses by Ronaldo, they were made to pay by Rodriguez, who connected with a rebound to slot home the equaliser on 63 minutes.
A match-winning save was needed once again by Navas to keep the defending champions in the tournament as he denied a volley. at the midway point of the sec.
The Spanish outfit marched to their third successive final, where they have a chance to clinch three successive titles in Kyiv later this month.
Liverpool travel to Stadio Olimpico to face Roma in the other semi-final second-leg on Wednesday (20:45 kick-Off)