Manchester City ledet 2–1 ti minutter før slutt etter to mål av Erling Braut Haaland. Så våknet Real Madrid.
Real Madrid lå under to ganger, men slo tilbake og vant 3–2 på Etihad Stadium.
Scoringene deres kom fra innbytter Brahim Diaz og Jude Bellingham, det siste på overtid.
Før det hadde Erling Braut Haaland scoret to ganger med ett mål fra Kylian Mbappé i mellom.
Før oppgjøret hadde Haaland aldri scoret mot Real Madrid, til tross for at han hadde spilt mot dem fire ganger tidligere.
Haalands to mål var hans 48. og 49. i Champions League.
Det gjør at han er den tiende mestscorende spilleren i Champions League
Det er én mer enn Zlatan Ibrahimovic, som trengte 124 kamper for å få 48 mål.
Haaland? 48 kamper – over ett mål per kamp i snitt.
Real Madrid sjokkerte Manchester City i åpningsminuttene på Etihad Stadium.
På tre minutter fikk Kylian Mbappé, Ferland Mendy og Vinicius Junior hver sin store sjanse, uten at noen av dem endte mål.
Så fant Jack Grealish åpningen i Madrid-muren. En lekker lobb fant Josko Gvardiol på vei inn i boksen. Med ryggen mot mål bryster han ballen til Haaland, som med innsiden av foten satte inn 1–0 til City.
– «Har aldri scoret mot Real Madrid» var historien før kampen. Men denne gutten fra Jæren, han skriver jo om historien, sa TV 2s kommentator Øyvind Alsaker.
Etter målet kontrollerte de lyseblå store deler av kampen frem til pause, men Real Madrid var ikke ufarlige. Et tverrliggerskudd fra Vinicius Junior var det nærmeste bortelaget kom å utligne før hvilen.
Allerede 30 sekunder ut i andre omgang var Haaland nære å få sitt andre. Skuddet hans gikk via beinet til Eduardo Camavinga og i bue mot mål, men spratt på tverrliggeren og ut igjen.
Men da timen var spilt var det spissen på motsatt side som skulle lykkes.
Et frispark i muren endte i beina til Dani Ceballos. Han lobbet inn til en ensom Mbappé foran mål, som scoret sitt Champions League mål nummer 53 med leggen.
– Det er de to nierne. Det er den duellen det ble snakket om før kveldens kamp. Nå har de én hver, sa TV 2s Alsaker.
– En enorm pasning fra Ceballos, sa medkommentator Jespen Mathiesen.
Et kvarter før slutt peker dommer Clément Turpin på straffemerket etter at nevnte Ceballos kom for sent inn i Phil Foden.
Den var det ingen andre enn Erling Braut Haaland som skulle ta.
Med blikket mot Courtois i Madrid-målet gikk han fram og sendte den belgiske målvakten feil vei og 2–1.
– Han scorer sitt andre, og akkurat nå er han det store navnet på Etihad, sa TV 2s Alsaker.
Dramaet var derimot ikke over.
Vinicius Junior ble spilt fri i boksen av Brahim Diaz, som hadde blitt byttet inn minuttet før.
Skuddet hans fikk Ederson stoppet, men ballen gikk ut i feltet igjen.
Der var Diaz først, og kunne enkelt sette inn 2–2.
På overtid stakk Real Madrid av med med seieren.
Vinicius Junior var plutselig alene med Ederson.
Han lobbet forbi målvakten, men ikke på mål.
Men Jude Bellingham hadde luktet muligheten, og kunne sette ballen i det åpne målet.
– Manchester City går opp i limingen igjen, sa TV 2s Alsaker.
Hverken Manchester City og Real Madrid ble blant de åtte beste i gruppespillet og spiller playoff for å gå videre til åttedelsfinalen.
Der venter enten Atlético Madrid eller Bayer Leverkusen. Hvem vinneren møter trekkes 21. februar.
Returoppgjøret spilles på Santiago Bernabéu onsdag 19. februar.