Although City looked poised to run away with it, Madrid kept it close, and there will be plenty to play for in the second leg. Here are three thoughts on the game.
1. Both sides have reason to believe they can finish on top
The semifinal between Man City and Real Madrid matched the record for the highest-scoring Champions League semifinal ever, with Pep Guardiola's side earning a 4-3 advantage to take to the Bernabeu next week.
City led 2-0 after just 11 minutes thanks to goals from Kevin De Bruyne and Gabriel Jesus before Karim Benzema pulled one back before halftime. Phil Foden made it 3-1 after 53 minutes, only for Vinicius Junior to hit back again two minutes later.
Bernardo Silva scored a spectacular fourth for City, but Benzema netted another from the penalty spot to ensure the tie is still in the balance ahead of the second leg in Spain.
Guardiola will feel City's advantage should be even bigger after watching his team miss a host of chances, and Real Madrid will believe they still have a chance of adding to their own record of 13 wins in this competition.
It's especially true with Benzema in the team after the striker scored twice to make it nine goals in his last four Champions League games and also surpass 40 goals for the season.
2. Man City's big-game goal scorers gave Guardiola a fast start
De Bruyne and Jesus would probably like to score more goals, but when they do find the net, it's usually important.
De Bruyne has already scored against Chelsea, Manchester United, Atletico Madrid and Liverpool home and away this season and his early header gave City a game-changing lead against Real Madrid. His goal, scored after just one minute and 33 seconds, was Man City's fastest goal ever in the Champions League.
Jesus, meanwhile, has found opportunities hard to come by this season but has still managed to score against Arsenal, Chelsea, Paris Saint-Germain and now Real Madrid. The Spanish giants will be sick of the sight of him after he scored in both games of the last-16 tie in 2020.
The big stage suits De Bruyne in particular, and in the first half here, he was comfortably the best player on the pitch.
While other world-class midfielders like Luka Modric and Toni Kroos took a while to find their rhythm, De Bruyne scored after just 90 seconds and set up Jesus 10 minutes later. His run from the edge of the box to head in Riyad Mahrez's cross was a textbook example of penalty area movement.
The Belgian also created golden chances for Mahrez and Foden inside the opening 30 minutes and City could have been out of sight before Benzema nicked one back before halftime.
Mahrez's miss, while also ignoring a square pass to Foden at the back post, annoyed Guardiola so much that the City boss ended up in Ancelotti's technical area as he raced down the touchline to scream at the Algerian.
3. Benzema, missed chances and City's right-back problem keep Madrid in it
Had City been at their clinical best the tie would be over, but Real Madrid will head back to Spain believing they can reach the final in Paris at the end of May.
Mahrez and Foden missed chances in the first half, and then immediately after halftime, Mahrez struck the post after being sent clean through before Foden hit Dani Carvajal on the line with the rebound. Even after Foden had scored City's third, Aymeric passed up another clear opportunity from Oleksandr Zinchenko's cross.
The wastefulness let Real Madrid off the hook while the visitors also benefitted from Guardiola's problems at right-back.
John Stones wasn't fit enough to train in front of the cameras yesterday but was named in the starting XI, and after Benzema's first-half goal came from a cross down his side, he was almost immediately replaced with Fernandinho.
The 37-year-old started well -- it was his cross which set up Foden's header -- but struggled more as the game wore on. He was embarrassed by Vinicius Junior as the forward scored to make it 3-2, and every time Real Madrid flung the ball out to their left, the Etihad held its breath.
The one thing City couldn't control was Benzema's brilliance. The Frenchman's finish in the first half was deft and his Panenka penalty was cool. With Benzema in your team playing like this, there is always a chance.