Isco’s strike had given the Spaniards the lead midway through the second half, but a header from Gabriel Jesus levelled the scores before Kevin De Bruyne put pay to City’s penalty hoodoo with a composed finish as Madrid imploded, with captain Sergio Ramos sent off five minutes from time.
Zinedine Zidane raised a few eyebrows by leaving the likes of Toni Kroos and Gareth Bale on the bench as Brazilian teenager Vinicius Jr. was handed the chance to impress.
That was nothing, however, compared to the surprise that greeted Pep Guardiola’s team selection, as stalwarts Sergio Aguero and David Silva were left on the bench, where they were joined by Raheem Sterling on his return from injury.
The intrigue extend to City’s shape, with Gabriel Jesus deployed on the left of midfield and Kevin De Bruyne and Bernardo Silva operating as a pair of false nines.
Both sides seemed to be holding each other at arms’ length for much of the first half, but Jesus tested Thibaut Courtois after being slipped in by De Bruyne’s incisive pass, before City suffered a major blow as Aymeric Laporte limped off injured.
Ederson produced an excellent save to keep out Karim Benzema’s header, but the rebound should have been turned home by Vinicius, only for the Madrid man to lose his footing.
Instead, the closest either side came to an opener before the break was in stoppage time, when Jesus’ shot was diverted towards his own goal by Sergio Ramos and Fede Valverde had to boot clear off the line.
The visitors found space on the break a little easier to come by at the start of the second period, with Riyad Mahrez looking increasingly threatening, and the Algerian was denies by a smart low stop from Courtois.
Just as City were starting to knock on the door, however, Madrid pounced at the other end, Vincius showing great pace to nick it away from Kyle Walker and squaring calmly for Isco to tuck home.
Twice, City had substitute Fernandinho to thank for close-quarter blocks that denied Madrid a second, as Sterling was sent into the fray in place of Bernardo Silva.
The change immediately paid dividends, because it restored Jesus to a more natural forward position and from there he stole in behind Ramos at the back post to nod De Bruyne’s cross beyond Courtois.
Sterling then played a more direct role in the goal that truly puts City in command, winning a penalty off the rash Dani Carvajal, which De Bruyne converted in a fashion that makes you wonder why he hasn’t been taking them all season.
They might have had a third in the closing minutes when Jesus pounced on a mistake and raced through on goal but Ramos tripped him just outside the box and was rightly given his marching orders.
Relive all the goals and action with our LIVE blog...
Can’t see the Real Madrid vs Man City LIVE blog? Click here to access our desktop page.