Cristiano Ronaldo plundered a hat-trick as Real Madrid saw off 10-man Bayern Munich 4-2 after extra-time at the Bernabeu to secure the holders' place in the semi-finals of the Champions League.
Robert Lewandowski, who missed the first leg with a shoulder problem, put Bayern ahead on the night from the penalty spot to level the tie on aggregate following Real's 2-1 win in Munich, where Ronaldo had scored twice.
Ronaldo's bullet diving header in the 76th minute then looked to have sent Real through, but a bizarre own goal from captain Sergio Ramos moments later levelled things up at 3-3 overall.
The Germans had to head into extra-time with only 10 men following a second caution for midfielder Arturo Vidal, which looked harsh on the Chile international.
Real made their numerical advantage count as Ronaldo grabbed his second of the match in the 105th minute - taking him to 100 Champions League goals in the process - although he looked to have been offside.
There was also some debate about Ronaldo's hat-trick goal four minutes later, with the Portugal forward possibly offside again when he knocked the ball in following a fine run from Marcelo.
Substitute Marco Asensio added a fourth on the break in the 112th minute to complete a 6-3 aggregate win for the Spanish league leaders as former Real boss Carlo Ancelotti endured a miserable return to the Bernabeu.