
Second-half goals from Jeremy Doku, Bernardo Silva and Erling Haaland helped Manchester City come from behind to beat in-form West Ham and continue their winning start to the Premier League season.
James Ward-Prowse's diving header gave the Hammers the lead against the run of play, but Doku's first City goal restored parity 43 seconds after the interval.
Silva then collected Julian Alvarez's looping ball over the top of the West Ham defence before calmly prodding past the onrushing Alphonse Areola.
Haaland, who had squandered several earlier opportunities, completed the scoring at London Stadium with a trademark finish.
"All game we were fantastic, even when we were losing at half-time against an incredible side," City manager Pep Guardiola told BBC Sport. "We were efficient and patient in the second half.
"It was a big win after the international break. The team showed good spirit to survive."
City maintain their two-point lead over Tottenham and Liverpool at the top of the table, while West Ham drop to sixth thanks to their first defeat of the campaign.
City patience pays off
There was little wrong with City's first-half display, but, despite registering 17 shots before the break, they could not find a way past Areola and West Ham's deep-lying rearguard.
They went close to taking a deserved lead after only six minutes, but Areola produced fine saves to deny Rodri and Ruben Dias either side of Tomas Soucek's goal-line block from Haaland.
The Norwegian - of all people - squandered two glorious opportunities before half-time, somehow steering Doku's low cross wide of the far post before having another shot cleared off the line by the retreating Nayef Aguerd.
Guardiola, back in the City dugout following surgery, will have asked for more of the same from his players at half-time and they were level moments after the restart as the lively Doku cut in from the left before producing an expert finish.
Reflecting on the 21-year-old Belgian's performance, Guardiola said: "I would say that the first game (against Fulham) he was shy, but today he was not. He was a proper winger, having the ball and having the ability to go one v one.
"Not just that - he has the quality to read when to make the pass for the next player. I was very happy. It was a very good performance from Jeremy."
Alvarez rattled a post with a magnificent free-kick not longer after Doku's leveller, but City were not to be denied as the Argentine scooped a clever ball over the West Ham backline for Silva to poke home.
Haaland delivered the icing on the cake late on, extending his league tally to seven goals in five games this season with a smart finish from Silva's pass.
Valiant Hammers fall short
West Ham overcame Brighton last month despite having only 22% possession, and for a long time it looked as though they might secure another famous win against the Premier League champions despite having their backs to the wall for the vast majority of the first half.
The hosts could have taken the lead before the opener, Aguerd nearly getting on the end of Soucek's near-post flick-on following a clever corner routine involving Ward-Prowse and Jarrod Bowen.
West Ham's move for the opening goal was perfectly executed, Vladimir Coufal lofting a delightful cross in for Ward-Prowse to head home from close range.
But their hard work was undone seconds after the interval, much to the frustration of David Moyes, his coaching staff and the home supporters.
"It was bad timing for their first goal right after half-time, but I was more disappointed with their second goal - it was really poor," Moyes told BBC Sport.
"We've had small margins in the other games that we've won. Today their keeper made a couple of saves and those margins could have gone our way [but] didn't.
"We were probably as good on the ball today as we have been for a long time but didn't get the opportunities we would have liked. We were still a threat, but not enough."
Ederson pulled off a sensational one-handed save to deny Kurt Zouma with the score at 1-1, but Silva's goal seemed to deflate West Ham before Haaland's late effort ended their hopes of getting anything from the contest.
Player of the match
Ward-ProwseJames Ward-Prowse
with an average of 7.47West Ham United
Squad number7Player nameWard-Prowse
Average rating7.47
Squad number19Player nameÁlvarez
Average rating6.86
Squad number23Player nameAreola
Average rating6.85
Squad number10Player nameLucas Paquetá
Average rating6.81
Squad number20Player nameBowen
Average rating6.76
Squad number27Player nameAguerd
Average rating6.71
Squad number33Player nameEmerson
Average rating6.61
Squad number9Player nameAntonio
Average rating6.60
Squad number5Player nameCoufal
Average rating6.58
Squad number28Player nameSoucek
Average rating6.56
Squad number4Player nameZouma
Average rating6.44
Squad number14Player nameKudus
Average rating6.22
Squad number22Player nameBenrahma
Average rating5.59
Squad number24Player nameKehrer
Average rating5.12
Squad number18Player nameIngs
Average rating4.81
Manchester City
Squad number6Player nameAkéAverage rating7.31
Squad number82Player nameLewisAverage rating7.27
Squad number21Player nameGómezAverage rating7.20
Squad number52Player nameBobbAverage rating7.17
Squad number11Player nameDokuAverage rating6.90
Squad number19Player nameÁlvarezAverage rating6.82
Squad number47Player nameFodenAverage rating6.79
Squad number20Player nameBernardo SilvaAverage rating6.76
Squad number16Player nameRodriAverage rating6.57
Squad number2Player nameWalkerAverage rating6.56
Squad number27Player nameMatheus NunesAverage rating6.54
Squad number9Player nameHaalandAverage rating6.46
Squad number3Player nameRúben DiasAverage rating6.44
Squad number25Player nameAkanjiAverage rating6.36
Squad number31Player nameEdersonAverage rating6.34
Squad number24Player nameGvardiolAverage rating6.31
Line-ups
West Ham
Formation 4-2-3-1
23Areola
5Coufal4Zouma27Aguerd33Emerson
28Soucek19Álvarez
20Bowen7Ward-Prowse10Lucas Paquetá
9Antonio
- 23Areola
- 5CoufalSubstituted forKehrerat 87'minutes
- 4Zouma
- 27Aguerd
- 33Emerson
- 28SoucekBooked at 79minsSubstituted forIngsat 87'minutes
- 19ÁlvarezBooked at 38minsSubstituted forBenrahmaat 68'minutes
- 20Bowen
- 7Ward-Prowse
- 10Lucas PaquetáBooked at 90mins
- 9AntonioSubstituted forKudusat 67'minutes
Substitutes
- 1Fabianski
- 3Cresswell
- 8Fornals
- 14Kudus
- 15Mavropanos
- 18Ings
- 21Ogbonna
- 22Benrahma
- 24Kehrer
Man City
Formation 4-2-3-1
31Ederson
2Walker25Akanji3Rúben Dias24Gvardiol
16Rodri20Bernardo Silva
47Foden19Álvarez11Doku
9Haaland
- 31Ederson
- 2Walker
- 25Akanji
- 3Rúben Dias
- 24GvardiolBooked at 45minsSubstituted forAkéat 90+5'minutes
- 16RodriBooked at 89mins
- 20Bernardo SilvaSubstituted forBobbat 90+5'minutes
- 47FodenSubstituted forNunesat 67'minutes
- 19Álvarez
- 11DokuSubstituted forGómezat 90'minutes
- 9HaalandSubstituted forLewisat 90+4'minutes
Substitutes
- 4Phillips
- 6Aké
- 18Ortega
- 21Gómez
- 27Nunes
- 33Carson
- 52Bobb
- 82Lewis
Referee:Andy Madley
Attendance:62,475
Match Stats
Live Text
Match ends, West Ham United 1, Manchester City 3.
Second Half ends, West Ham United 1, Manchester City 3.
Lucas Paquetá (West Ham United) is shown the yellow card for a bad foul.
Oscar Bobb (Manchester City) wins a free kick on the right wing.
Foul by Lucas Paquetá (West Ham United).
Foul by Sergio Gómez (Manchester City).
Mohammed Kudus (West Ham United) wins a free kick in the defensive half.
Substitution, Manchester City. Oscar Bobb replaces Bernardo Silva.
Substitution, Manchester City. Nathan Aké replaces Josko Gvardiol.
Substitution, Manchester City. Rico Lewis replaces Erling Haaland.
Attempt missed. Nayef Aguerd (West Ham United) header from the left side of the box is high and wide to the left. Assisted by James Ward-Prowse following a set piece situation.
Substitution, Manchester City. Sergio Gómez replaces Jérémy Doku.
Rodri (Manchester City) is shown the yellow card for a bad foul.
Foul by Rodri (Manchester City).
Mohammed Kudus (West Ham United) wins a free kick in the attacking half.
Substitution, West Ham United. Thilo Kehrer replaces Vladimír Coufal.
Substitution, West Ham United. Danny Ings replaces Tomás Soucek.
Goal! West Ham United 1, Manchester City 3. Erling Haaland (Manchester City) left footed shot from the centre of the box to the bottom right corner. Assisted by Bernardo Silva.
Josko Gvardiol (Manchester City) wins a free kick on the left wing.
Foul by Mohammed Kudus (West Ham United).
ncG1vNJzZmivp6x7o67CZ5qopV%2BovbC%2B02idqKekl66tuI5vbXBuYGqCeQ%3D%3D