After a 2-1 victory in the first leg in Madrid in February, City ensured they will take part in the mini tournament in Portugal thanks, in part, to two horrific mistakes from Raphael Varane. With usual centre-back partner Sergio Ramos suspended, Varane gifted City the lead after nine minutes when he was bundled off the ball by Gabriel Jesus and Raheem Sterling tapped in his 31st goal of the season. Karim Benzema gave Real Madrid hope with an equaliser just before the half-hour mark, but Jesus took advantage of another Varane mistake -- this time a weak header back to Thibaut Courtois -- to clinch the tie in the second half.
"It is about belief, believe in their mistakes," Jesus told BT Sport after the match. "We are human and can make mistakes so I believe always and I press, press a lot. It is one of my powers. I was happy to score.
"I work to be a great striker, I work every day hard to be like Ronaldo was. His quality is different from me but I have to work to be a great striker."
So often City have shot themselves in the foot in Champions League knockout ties by failing to control key moments in games but there was none of that here. Pep Guardiola got his tactical plan spot on, and despite a spell of Real Madrid pressure towards the end of the first half, City never looked as if they were losing control.
It has been an issue all season, but City can still look vulnerable at the back. Guardiola looked particularly unhappy at how Real Madrid's goal was conceded -- it was made very easy for Rodrygo and Benzema -- and they will have to cut out those sloppy moments in Lisbon.
Manager rating out of 10
8 -- The City manager deployed Jesus on the left again after it worked so well in the first leg, but he still sprung a surprise by picking Phil Foden in the centre of the mobile front three. Guardiola's switch at half-time to a more natural forward line with Jesus through the middle paid off and he also brought on Bernardo Silva at the right time.
Player ratings (1-10; 10 = best, players introduced after 70 minutes get no rating)
DF Joao Cancelo, 7 -- Chosen ahead of Oleksandr Zinchenko at left-back. Should have done more to stop Rodrygo when the Brazilian ghosted past him to set up Benzema's equaliser.
DF Fernandinho, 7 -- Hasn't played often as a centre-back since the restart but was drafted back in here. Probably should have got closer to Benzema when he headed past Ederson.
DF Aymeric Laporte, 7 -- Might have missed this game had it not been delayed after going off injured in Madrid in February.
MF Rodri, 7 -- Got under the cross when Benzema headed in to make it 1-1 but that was the only mark on his performance.
MF Ilkay Gundogan, 7 -- Missed the chance to play in Sterling after a good run from Foden. Helped City control midfield for much of the game.
MF Kevin De Bruyne, 7 -- Twice almost caught out Courtois direct from a corner. Looked tired by the end but was as creative as ever.
FW Phil Foden, 7 -- A surprise selection and even more so because he started as a false nine. Fizzed a shot just wide in the first half.
FW Raheem Sterling, 7 -- Left with a tap-in to make it 1-0 inside the first 10 minutes after Jesus' pass. Had a couple of chances to put the game to bed.
FW Gabriel Jesus, 8 -- Did brilliantly to rob Varane in the penalty area and set up the opener for Sterling. Good pressing and delicate finish to make it 2-1.
FW Bernardo Silva, 6 -- Passing and movement was good.
MF David Silva, N/R -- Went close with a free kick after replacing Sterling.
DF Nicolas Otamendi, N/R -- Appeared for a mere two minutes.