Real Madrid moved a step closer to a third straight Champions League title after substitute Marco Asensio hit the winner in a 2-1 semi-final, first-leg victory at Bayern Munich on Wednesday.

The 22-year-old came off the bench to finish a counter-attack and complete the holders’ comeback win, giving Real the advantage for the return game in Madrid next Tuesday.

Bayern took the lead at the sold-out Allianz Arena through Joshua Kimmich, but Marcelo equalised just before the break.

Despite Bayern dominating possession and creating plenty of chances, Madrid claimed a sixth straight win, dating back to 2012, over the Bavarians in the Champions League knockout stage.

Real coach Zinedine Zidane pulled a surprise before kick-off by leaving both Gareth Bale and Karim Benzema out of the starting line-up.

Isco, who was replaced by Asensio at half-time, and Lucas Vazquez played either side of Cristiano Ronaldo, who had a subdued night up front in Munich.

The Portuguese failed to add to his tally of 15 Champions League goals this season, being denied a second-half strike by an offside flag, which would have made it 3-1.

James Rodriguez, who is on a two-year loan deal from Real, shone in Bayern’s midfield and found plenty of cracks in the Madrid defence.

However, this just was not Bayern’s night.