Isco gave the hosts the lead on the hour but Pep Guardiola’s men levelled the scores thanks to Gabriel Jesus’ header on 74 minutes.
Five minutes later, City were given a penalty after Raheem Sterling was brought down in the box. Kevin De Bruyne dispatched from twelve yards to secure City the 2-1 win.
Things got worse for Real in the closing stages with Sergio Ramos being ruled out of the second leg at the Etihad as he was sent off for a foul on Jesus.
After the match, referee Daniele Orsato was hugely criticised by AS journalist Tomas Roncero.
In AS, a Madrid-based newspaper, Roncero claims Real Madrid were, at 1-0, moving closer to going 2-0 up but ‘Orsato came to the rescue.’
He insists City’s first goal shouldn’t have stood, either, claiming Jesus pushed Ramos in the back as De Bruyne’s cross came in.
Roncero didn’t have any complaints about the awarding of City’s penalty, but believes Ramos should not have been sent off for his later tackle.
He said: “Sergio touches his arm like someone who greets a neighbour with courtesy. Minimum contact, but Gabriel Jesus dropped as if a truck had hit him.”
The referee was then accused of becoming a ‘Citizen’ in the final part of the game with City very much on top.
Roncero added: "The Italian, who is the most anti-bullish referee in the Champions League, as the statistics say, came up and made it clear that being a protagonist for annoying Madrid is cool and should give you a lot of free publicity…"
Roncero will be happy Orsato can’t referee the second leg at least – though Los Blancos will still have their work cut out to make it past Man City and into the Champions League quarter-finals.
Manchester City have one foot in the Champions League quarter-finals after coming from behind to beat Real Madrid in the first leg of the round-of-16 tie.