Midtveis i 2. omgang avgjorde Haaland kampen ved hjelp av en fryktelig feilvurdering av Chelsea-keeper Robert Sánchez.
Ederson sendte et langt utspark i retning av Haaland. Sanchez rykket ut i den tro at han skulle nå ballen først, men han var ikke i nærheten. Haaland vant en duell med Chalobah og vippet ballen over keeperen som var på håpløs halvdistanse.
Med scoringen var kampen vendt etter at den nyinnkjøpte 20-åringen Abdukodir Khusanov forærte Chelsea-ledermålet allerede etter to minutter av debutkampen i Chelseas midtforsvar.
Mareritt
Unggutten fra Usbekistan prøvde å nikke et langt Chelsea-oppspill tilbake til Ederson, men serverte i stedet Noni Madueke, som kunne trille ballen i tomt bur.
Rett etter pådro unggutten seg gult kort, og han ble byttet ut tidlig i 2. omgang.
Phil Foden skjøt i stolpen før det var spilt ti minutter, men Chelsea truet også med å øke sin ledelse. En annen City-debutant, Omar Marmoush, trodde han hadde utlignet etter en drøy halvtime, men målet ble annullert for offside.
Ny forsvarstabbe
I stedet kom utligningen fra Josko Gvardiol rett før pause, og det var igjen etter dårlig forsvarsspill. Marc Cucurella kolliderte med Sanchez da han prøvde å klarere et framspill fra Ilkay Gündogan, og venstrebacken kunne sette ballen i åpent mål.
Chelsea presset i perioder i jakten på et nytt ledermål, men det var City som fikk det etter kampens tredje forsvarsbrøler.
I det 87. minutt fastsatte Foden resultatet etter et nytt langt framspill fra Ederson. Denne gang flikket Kevin De Bruyne ballen videre til Haaland, som spilte Foden gjennom.
Les også: Utskjelte Antony lånes ut fra Manchester United – klar for Betis
Les også: Omdiskutert rødt kort da Calafiori berget Arsenal – Bournemouth knuste Forest
Les også: Liverpool valset over Ipswich etter Gakpo-show på Anfield