The first half was on the cagey side, but Karim Benzema and Gabriel Jesus both had efforts saved, while Vinicius Junior might have done better on the rebound from Benzema’s effort and Sergio Ramos almost put through his own net in trying to block another Jesus effort.
Isco finally opened the scoring on the hour mark, finishing well after a series of City defensive errors were punished by Vinicius Jr’s pace and clever pass, but Kevin de Bruyne produced a brilliant late show, crossing for Gabriel Jesus to head an equaliser then scoring a penalty himself.
Sergio Ramos was shown a late red card too, leaving Madrid in all sorts of bother ahead of the return leg.
Here are five things we learned from the game at the Santiago Bernabeu.
1. Alternative priorities?
Both managers named eyebrow-raising starting XIs for a huge European game, perhaps with an eye apiece on the weekend.
There is, of course, a second leg to come here – so perhaps both Zinedine Zidane and Pep Guardiola went into the game thinking of the matches lying ahead, with 90 minutes more to rectify shortcomings from the first leg.
Real have El Clasico to come on Sunday, hosting Barcelona at the Bernabeu in a crucial top-of-the-table clash, while City face Aston Villa on the same day in the EFL Cup Final at Wembley.
Toni Kroos was benched for Los Blancos, with his vision and passing range sorely missed, while Sergio Aguero and Raheem Sterling sitting on the bench naturally meant City lacked a little of their clinical touch – though the latter was only just back from injury.
Aside from the lineups, the tactics and early approach also seemed to suggest that both managers saw this as a longer-term chess match than merely the evening on offer in Madrid.
2. Battle of the Mendys
Ferland on one side of the pitch, Benjamin on the other; both with surname Mendy, both left-backs, both hoping to be France’s first choice at Euro 2020. In fact, neither could feasibly make the squad.
They only have 14 caps between them; Lucas Hernandez has more by himself and Lucas Digne has most of all, so impressing on the biggest stage is one of the best ways they could press their own claim to make Didier Deschamps take notice.
Here, it was arguably the Madrid man who had the better of the night.
Benjamin was the more forceful on the ball, driving forward at pace - but he had little end product to show for his industry, at times overrunning the ball and not finding a team-mate with a cross all game. A yellow card in the first half was the most disappointing aspect, ruling him out of the return leg at the Etihad.
Ferland, by contrast, was more considered with his passing, switched play nicely at times and delivered the cross for Real’s best first-half chance, a Benzema header which Ederson saved. He might have snatched a late equaliser for Madrid, though.
3. Laporte concern
Other than the obvious point of losing heavily, uppermost in Guardiola’s mind would have been the continual return to full fitness of Aymeric Laporte.
Just over half an hour in, the influential centre-back’s night was over, replaced by Fernandinho after another apparent setback.
It was only a few days ago when Guardiola assured fans and reporters alike that the French defender would be fit to play the whole game against Real, after asking to be subbed against West Ham.
Laporte has now had four games back after injury and he’s yet to complete a full 90 minutes. While that might be expected, to an extent, after around five months out, Guardiola would have hoped that there would be fewer knock-on effects and that he could call upon his main man at the back with increasing frequency in the final third of the season.
Instead, he faces an anxious wait to see if another spell on the sidelines awaits.
4. Over-Peping it?
Gabriel Jesus was handed a start, but few would have expected it to come on the left wing.
In fairness, the Brazilian worked tremendously hard in the first 45, tracking back to his own penalty box to stop Dani Carvajal getting free down the wing, covering the switch of play and helping out Mendy.
He also had City’s best chance in attack, cutting in off the flank – but it was when he went up front in the second half where City finally started to show their offensive threat.
Jesus nodded in the equaliser and also showed his work ethic and pace to intercept a pass, surge away and get Sergio Ramos sent off in the closing stages.
A big call for Guardiola to start the Brazilian over Aguero, but there was clearly a tactical reason for it. Even so, it was in his natural role where Jesus eventually made the difference.
5. City in the driving seat
Two away goals, a one-goal lead and Madrid without Ramos – Guardiola could barely have dreamed of a better scenario. Laporte injury excepted, of course.
Even so, the scoreline means Madrid will have to attack at the Etihad and City have the players to exploit teams on the break and who leave spaces behind midfield.
A fit-again Sterling might be the key, but even if he’s not involved, the question will be of whether Madrid can find more firepower than they had at home.
The first managerial meeting between Zidane and Guardiola looked like being a great occasion for the Frenchman, but it ended up being Pep’s perfect night.