Vinicius Junior scored a hat-trick as Real Madrid produced a stunning second-half comeback from 2-0 down to beat Borussia Dortmund 5-2.
Goals from Donyell Malen and Englishman Jamie Gittens gave Dortmund a comfortable lead at half-time in a repeat of last year’s final which Real won 2-0.
Antonio Rudiger pulled a goal back for the Spanish champions with a towering header in the 60th minute before Vinicius levelled two minutes later.
Captain Lucas Vazquez made it 3-2 to the hosts with a driven finish from a tight angle in the 83rd minute.
Vinicius then scored two late goals to take the game out of Dortmund’s reach, with both strikes coming after impressive solo runs.
Vinicius inspires Real to win
Dortmund had looked on course to end Real Madrid’s 14-match unbeaten run at home in the Champions League at the break.
And even at 2-2 skipper Julian Brandt had a close-range shot brilliantly saved by the feet of Real keeper Thibaut Courtois.
Less than a minute later and Vazquez put Real in front.
Real had struggled offensively in the first half with Kylian Mbappe and Jude Bellingham struggling to link up, even with the England midfielder hitting the underside of the bar with his side 2-0 down.
But inspired by Vinicius – who is favourite to win next Monday’s Ballon d’Or vote – the home side looked unstoppable after the break.
The Brazilian’s second goal was particularly impressive with the winger picking up the ball in his own half, racing down the left and firing a shot into the bottom corner from the edge of the box.
Carlo Ancelotti’s side have now won two and lost one of their three league phase matches, giving them the same record as Dortmund.
Meanwhile, Gittens, at 20 years and 75 days old, became the youngest Englishman to score against Real Madrid, beating Alan Smith’s record (20 years and 129 days) set while playing for Leeds in March, 2001.