City went ahead thanks to a smart finish from Erling Haaland on 19 minutes, which was the only goal of the first half of proceedings in what was a nail-biting match.
Kylian Mbappé levelled the scores on the hour mark with an acrobatic volley past City’s goalkeeper Ederson.
However, the home side went ahead 20 minutes later when Phil Foden was fouled by Dani Ceballos in the penalty area.
Haaland, 24, finished the ensuing spot-kick with aplomb to give his side a 2-1 advantage.
And it looked likely to be the Premier League side’s evening before in typical Real Madrid fashion, they hit back through Brahim Diaz on 86 minutes.
Pep Guardiola could hardly believe what he was seeing in second-half stoppage time when Jude Bellingham latched onto Vinicius Jr’s lob over the advancing Ederson before the England international tapped home from close range.
But, throughout the game, City fans highlighted one player who many believe had a poor game and was partly at fault for Madrid’s winning goal.