Jude Bellingham scored the winner in stoppage time as Real Madrid twice came from behind to inflict more misery on Manchester City, with a 3-2 Champions League playoff, first-leg win at the Etihad.
Erling Haaland twice put City in front with his first goals in five games against Madrid on Tuesday.
But the holders hit back through Kylian Mbappe and Brahim Diaz before Bellingham stroked home in the 92nd minute on his return to England.
City now have a monumental task ahead to progress to the last 16, when the sides meet again in the Spanish capital on February 19.
The clubs were meeting for the fourth consecutive season in the Champions League, with the winners in each of the previous three years going on to lift the trophy.
If that familiarity did not breed enough contempt, Madrid’s decision to boycott City midfielder Rodri’s crowning as the Ballon d’Or winner last year added extra animosity.
The midfielder was rewarded for his role in Spain’s Euro 2024 triumph and a fourth consecutive Premier League title.
However, the Spanish giants took umbrage at Vinicius Junior being overlooked for the prize and pulled out all of their representatives from the ceremony in October
A huge banner before kickoff showed Rodri with the Ballon d’Or trophy alongside the lyric “Stop crying your heart out” from the City-supporting band Oasis.
Rodri’s absence since September with a season-ending knee injury has played a major role in City’s decline this season as the English champions sit 15 points off the pace in the Premier League.