Pep Guardiola's men came from behind to secure a vital victory; Isco's second-half opener had given Madrid the lead but Gabriel Jesus levelled the scores with a neat header before Kevin De Bruyne's cool spot kick sealed the win late on.
Elsewhere, French giants Lyon made the most of home advantage to take a suprise win against Juventus thanks to a solitary goal from Lucas Tousart.
Juve dominated possession but lacked killer instinct on a night that saw their chances of securing Europe's most coveted trophy dealt a huge blow.
Real Madrid 1-2 Man City
Lyon 1-0 Juventus
Goal of the night
Lyon midfielder Lucas Tousart scored the only goal of the night in France with this controlled volley, placing the ball into the top corner after good work from rising star Houssem Aouar on the wing.
Save of the night
City stopper Ederson's incredible athleticism was on full display at the Bernabeu as the Brazilian pulled a stunning stop out of the top drawer to keep Real's Karim Benzema at bay.
The 26-year-old was moving in the wrong direction but managed to get down low to his right, palming away the French striker's effort before the ball was cleared away.
Gabriel Jesus was the standout performer for Man City with the Brazilian striker deployed in an unfamiliar left wing role that saw him chip in with his fair share of defensive work before grabbing the vital equaliser.
Quote of the night
"They were so boring to watch for the best part of 60, 70 minutes
Jenas on Juventus
BT Sport's Jermaine Jenas does not hold back in his assessment of Maurizio Sarri's lacklustre Juventus as the Italian giants were felled by Lyon in the first leg of their last 16 encounter.
50 - Kevin De Bruyne has now scored 50 goals in all competitions for Manchester City; this is the first time he's both scored and assisted in the same Champions League game. Captain. #RMAMCI pic.twitter.com/hN5qhdQt8M— OptaJoe (@OptaJoe) February 26, 2020
Picture of the night
Juventus defender Matthijs de Ligt battles on wearing some stylish headwear after suffering a gruesome head injury during his side's disappointing 1-0 defeat away to Lyon.
Thursday's Europa League fixtures:
Espanyol v Wolves, BT Sport 1 HD, 5.15pm
Man Utd v Club Brugge, BT Sport 2 HD & BT Sport Ultimate, 7.30pm
Arsenal v Olympiakos, BT Sport 3 HD, 7.30pm
Celtic v Copenhagen, BT Sport ESPN, 7.30pm
BT Sport shows every game in the UEFA Champions League and UEFA Europa League proper, 52 live Premier League games per season, selected Emirates FA Cup fixtures up to and including the final and a host of Ladbrokes Premiership, Vanarama National League, Bundesliga, Ligue 1 and FA Women's Super League action.
Not yet a subscriber? Simply choose your preferred option from our wide range of sign-up packages and we'll get you set up with BT Sport in just 15 minutes.