Cristiano Ronaldo fired Real Madrid into the Champions League semi-finals, but their 4-2 extra-time win against Bayern Munich was marred by controversy.
Ronaldo's hat-trick saw him become the first player to score 100 goals in the Champions League, but two of his strikes were offside, while Arturo Vidal was wrongly sent off, having cleanly won the ball when dispossessing Marco Asensio, who rounded off Madrid's victory with a 'golazo'.
Gareth Bale's failure to recover from a calf injury in time allowed Isco to keep his place in the Madrid team after his match-winning display at Sporting Gijon over the weekend, although his inclusion prompted a change to a 4-3-1-2 formation.
Bayern, on the other hand, welcomed back key duo Mats Hummels and Robert Lewandowski, the pair having missed the first leg in Germany with knocks.
The game began with Franck Ribery’s low cross being met in the Madrid penalty area by Lewandowski, but Marcelo threw himself in front of the striker's point-blank shot.
Marcelo’s pinpoint delivery then dropped for Karim Benzema in the Bayern box, but the striker couldn’t direct his header on target.
Manuel Neuer failed to hold on to a drilled cross, which was cleared as far as Sergio Ramos, and the defender’s half-volley was cleared off the line by Jerome Boateng.
Ronaldo was suddenly away in the clear down the right, but instead of switching to an unmarked Benzema, he opted to take the shot himself, which Neuer pushed away at his near post.
Coming back out for the second half, Isco fizzed a half-volley inches wide of Neuer’s left-hand post.
Moments after Arjen Robben was denied on the line by Marcelo, however, the Dutchman was taken out by Casemiro in the box. Lewandowski took his time before sending Keylor Navas the wrong way.
Bayern should’ve pushed their turnaround through when Robben’s beautiful chip pass was met by Vidal, only for the Chilean to lift over near the penalty area.
Madrid needed to act quickly if they were to curb the Bavarians’ growing momentum, and they subsequently reverted to a 4-3-3 formation, with Asensio replacing Benzema.
Yet the Germans’ high line was horribly caught out when Philipp Lahm and David Alaba could only stand and watch Ronaldo head Casemiro’s square ball into the bottom-right corner.
Straight at the other end, Ramos’ awful touch squirmed through Keylor’s gloves to set up extra time, with both sides locked at 3-3 on aggregate.
However, Bayern would play out the half-hour with just 10 men as a shocking decision saw Vidal time a sliding tackle on Asensio perfectly but still get sent off for a second bookable offence.
Madrid responded to their numerical advantage by squeezing their opponents into submission, and Ronaldo unleashed a piledriver on target, which Neuer managed to tip it away.
Lucas Vazquez then cut back to Asensio for a free shot at goal, but the substitute’s first-time finish was superbly kept out by Neuer at his near post.
Ronaldo was offside when he met Ramos’ cross in the Bayern box, but the No 7 nonetheless blasted home on the volley to signal the end of Die Roten’s hopes and strike the fatal blow to their morale.
Four minutes later, Marcelo charged through the Bayern defence and pulled back for Ronaldo, who goal-hanged before tapping into an empty net, although replays showed the Portuguese to have been in front of the left-back’s pass.
Still, there was no such doubts about Asensio’s ‘golazo’ to confirm the result as he won the ball in his own half before making his way past two Bayern defenders and pulling a shot across Neuer.
With that, Los Merengues became the first team in Champions League history to achieve seven straight semi-finals.
Real Madrid 4-2 Bayern Munich (6-3 agg, aet.)
Ronaldo 76, 105, 109, Asensio 112 (RM) Lewandowski 53, Ramos og 78, Vidal sent off 85 (BM)
Real Madrid: Keylor; Carvajal, Nacho, Ramos, Marcelo; Modric, Casemiro, Kroos (Kovacic 114); Isco (Lucas 71); Benzema (Asensio 64), Ronaldo
Bayern Munich: Neuer; Lahm, Boateng, Hummels, Alaba; Vidal, Alonso (Muller 75), Thiago; Robben, Lewandowski (Kimmich 88), Ribery (Costa 71)
Referee: Kassai (HUN)