It was the first time City have beaten Real Madrid and it capped a breath-taking performance from a team who took the game to the 13-times Champions League winners from the word go and had to recover from losing Aymeric Laporte to injury in the first-half before going a goal behind on the hour.
The introduction of Raheem Sterling proved the catalyst with the England winger involved in Gabriel Jesus’ 79th-minute equaliser and winning a penalty just four minutes later.
Real Madrid ended the game with 10 men after Sergio Ramos was shown a straight red card later on.
All in all, an unforgettable night in the Spanish capital and perhaps the Champions League night all City fans have been waiting for.
City soon warmed to the task, knocking the ball around confidently and moving fluidly.
Pep Guardiola’s formation seemed to change with each transition, but whenever Real Madrid attacked, there was a solid collection of bodies lined up to keep the hosts at bay.
The first real chance of the game fell City’s way on 21 minutes as Kevin De Bruyne slipped a ball through to Gabriel Jesus who held off his marker as he cut back inside but then saw his shot beaten out by Thibaut Courtois.
Then Riyad Mahrez poked the ball to De Bruyne but the Belgian fired high and wide as he looked to curl it into the top corner.
So well had City defended that Real Madrid’s first real sniff of a goal came on 32 minutes – and it should have resulted in a goal.
Ferland Mendy’s left-wing cross found Karim Benzema who headed powerfully towards goal and Ederson produced a superb save down low to his right but it looked certain Vinicius would prod home the rebound only for the Brazilian to get his feet caught up and the danger was cleared.
It was a big let-off, but it immediately then became clear Aymeric Laporte was struggling as he sat down on the turf – and left the pitch soon after, shaking his head.
In first half added time, City came close to claiming a vital away goal when De Bruyne’s corner was flapped at by Courtois and the ball fell to Jesus whose volley was almost sliced into his own goal by Sergio Ramos before he cleared the danger.
City started the second half by twice going close to opening the scoring, first with a low Jesus drive and then with a Mahrez effort, both pushed out by Courtois.
Then, against the run of play, Real Madrid were ahead as a counter-attack saw Vinicius square to Isco as Fernandinho and Kyle Walker chased him into the box where he squared the ball to Isco who tucked a low shot past Ederson.
It was harsh and barely deserved, but this competition offers little sympathy.
City lost a bit of shape as they chased an equaliser and Real Madrid threatened to double their advantage on a couple of occasions, but then, a dramatic turnaround.
City continued to attack and as Raheem Sterling and De Bruyne exchanged passed, the Belgian’s cross just cleared Sergio Ramos and Gabriel Jesus headed past Courtois to make it 1-1.
But things were about to get even better as just four minutes later, City went ahead and super sup Sterling was once again heavily involved as he streaked into the Madrid box only to be felled by Dani Carvajal and the referee pointed to the spot.
Given our recent record with penalties, all eyes were on who placed the ball on the spot – it was Kevin De Bruyne and he made no mistake with a low shot into the bottom left-hand corner with 83 minutes played.
City were 2-1 up at the Bernabeu and just three minutes later, Real Madrid were reduced to ten men as Jesus broke clear only to be fouled on the edge of the box by Ramos who was shown a straight red card.
Mahrez had a couple of half-chances to further bloody Madrid's nose and Sterling also saw an effort saved by Courtois, but the 3,000 delirious City fans weren't complaining.
What a night...
"We tried to come here to win the game and we did. This is just the first part. If one team can overcome this situation, it's this club.
"When we were better, we conceded a goal. When they were better, we scored a goal. That's football. I remember the quarter-final a few seasons ago at Anfield when we played incredibly well and they scored all their shots on target."
On Aymeric Laporte...
"After five months injured in this scenario it's so demanding.
"Fernandinho came in and did incredibly well. I'm so proud. This is the first step. It's not over. We can enjoy the moment. On Sunday we have a final. We'll keep going in the Premier League and prepare for the second game against Real Madrid."
Our own, personal Jesus
From start to finish, Gabriel Jesus was superb.
His industry and willingness to put a shift in for the team was never more evident than when he popped up at left-back in the first-half to clear the danger.
He was unlucky not get the goal his efforts deserved in the first-half but he found the net with a smart header before his run clear resulted in Ramos being shown a straight red.
Brilliant from the young Brazilian.
Laporte loss would be a huge set-back
We may have to wait a few days to discover the extent of Aymeric Laporte’s injury, but the crestfallen look on his face suggests he thought it was something more than a knock.
He didn’t seem to hurt himself in a challenge, but we will wait and see.
Since his return, City haven’t conceded a goal while he’s been on the pitch.
Let’s hope we’ll see him playing again very soon.
Stage set for second leg
This is, of course, only half-time.
Real Madrid will be a wounded beast and the tie is far from over – but with an electric atmosphere guaranteed at the Etihad, the Spaniards will need to score at least two goals to have any chance of progressing.
That will mean they will have to be adventurous and City, in turn, will look to exploit any opportunities to counter-attack.
It should be a thrilling encounter.
City: Ederson, Walker, Laporte (Fernandinho 33), Otamendi, Mendy, Rodrigo, Gundogan, De Bruyne (c), Mahrez, Bernardo (Sterling 73), G Jesus
Subs: Bravo, Cancelo, Aguero, Foden, D Silva
Real Madrid: Courtois, Carvajal, Ramos, Varane, F Mendy, Casemiro, Modric (Vazquez 84), Valverde, Isco (Jovic 84), Vinicius (Bale 76), Benzema
Subs: Areola, Militao, Kroos, Marcelo
Man of the Match: Kevin De Bruyne
The Belgian was superb throughout.
His winner from the spot was his 50th goal for the Club - but it was his all-round quality that really lit up the Bernabeu.
His range of passing is arguably the best in the world, and he never stops running.
Another wonderful display to add to the ever-growing list.
City will look to secure their second trophy of the season on Sunday against Aston Villa and win the Carabao Cup third successive for the third successive season.
City have beaten Villa twice in the Premier League by an aggregate of 9-1, but there will be no thoughts of previous meetings in this one-off clash.
Then it’s back on the Wembley trail with a trip to Sheffield Wednesday in the FA Cup next Wednesday.
Stats and facts
- City are the first English side to win at the Bernabeu for 11 years.
- Real have failed to win their last four knockout phase matches at the Bernabeu.
- Under Zinedine Zidane, Real Madrid had previously won all 12 knockout-phase matches, winning nine two-legged ties and three finals.
- Benjamin Mendy will miss the second leg after picking up a yellow card this evening.
- Real Madrid have lost a Champions League home match despite scoring the opening goal for just the second time - also losing after going ahead against AC Milan in October 2009.
- Kevin De Bruyne scored his 50th goal in all competitions for City - this was the first time he has both scored and assisted in a Champions League match.
- Pep Guardiola is only the second manager to win two Champions League away games against Real Madrid and the first to do so with two different clubs.
- Sergio Ramos received his fourth Champions League red card - only Edgar Davids and Zlatan Ibrahimovic have as many (both four).
- Guardiola has now won more Champions League knockout-stage matches than any other manager in the history of the competition (28).
Don't forget, you can watch the full-match replay from midnight on City+.
Fans can sign up to a 30-day free trial, after which CITY+ is just £1.99GBP / month. For more information, visit https://www.mancity.com/City+