Pep Guardiola’s side will now face Lyon in the new one-game knockout format in Lisbon after inflicting Zinedine Zidane’s first elimination from the Champions League after winning the tournament three times.
And it was a win City fully merited as their intense pressing game forced Real into mistakes, with highly rated defender Raphael Varane unable to cope with the pressing of Gabriel Jesus in particular.
He robbed Varane to set up Raheem Sterling in the ninth minute, although Karim Benzema’s towering header before half-time set up the possibility of a tense second period.
City created the better opportunities in an excellent performance as Real missed the leadership of Sergio Ramos, suspended after being sent off in the first leg, Varane’s headed back-pass falling short of Thibaut Courtois, allowing the lurking Gabriel Jesus to pounce in the decisive moment after 68 minutes.