Match ends, Manchester City 2, West Ham United 1.
Manchester City midfield pair Ilkay Gundogan and Fernandino were on target as Pep Guardiola's Premier League superiority over West Ham continued.
City have now won 10 of 11 top-flight meetings with the Hammers under the Spaniard.
In a game played in a snow-storm before half-time, skipper Gundogan provided the decisive moment after 33 minutes when he turned home a deflected Riyad Mahrez effort at the far-post.
It was the Germany midfielder's third goal of the season - and his second in four league games - and was followed up in the final minute by Fernandinho, who had only been introduced three minutes earlier to tie the game up.
The veteran Brazilian had not scored a Premier League goal since October 2018 but found the target from the edge of the box.
Manuel Lanzini pulled one back with the final kick of the game, which cost Ederson his 100th clean sheet in all competitions but did nothing to prevent City moving back into second spot, six points clear of the Hammers.
The Londoners remain fourth despite suffering successive Premier League defeats for the first time since April.
Man City boss Pep Guardiola, said: "The amount of chances we created, especially in the first half, in the conditions that both teams played in - it was a huge victory for us, for the effort of the players and the performance.
"We didn't concede much. We defended the set-pieces really well and counter-attacks we controlled.
"We could maybe make another speed, another rhythm but weather conditions didn't allow us to do it and it was a good performance from us."
Weather main threat to City win
Guardiola offered special thanks to head groundsman Lee Jackson and his team for this latest victory.
As half-time approached with heavy snow falling on a pitch already covered in it, there was a real fear the game might not reach its conclusion.
Yet Jackson and his colleagues got to work and with the aid of a half-time interval extended by referee Michael Oliver by five minutes, and the surface was clear again when the game restarted, by which time the snow had stopped.
Guardiola said: "I think the groundkeepers, the men who took care of the pitch, were the men of the match. They did an incredible job so we could play the game today."
Jackson's reward was an effective home display, even if it was some way short of show-stopper.
West Ham keeper Lukasz Fabianski denied Gundogan a second and Bernardo Silva's excellent chipped finish counted for nothing thanks to an offside flag.
And Ederson, whose only significant save was turning away a fierce Declan Rice shot, was denied his personal milestone with a goal out of virtually nothing from Lanzini, when West Ham had no time to even think about an equaliser.
Below-par Hammers
Despite losing 22 out of 25 previous away games against the defending champions, West Ham can rarely have gone into such a fixture in more optimistic mood.
Yet they never really got going.
Fabianski was booed by the City fans inside the opening 10 minutes for apparent time-wasting and the experienced Poland goalkeeper was soon earning the wrath of David Moyes for a fluffed clearance that would have resulted in a goal had Mahrez not been offside when Raheem Sterling's block landed at his feet.
Arthur Masuaku's selection ahead of Jarrod Bowen was supposed to provide more protection down the West Ham left flank but City's array of attacking talent just found spaces elsewhere.
Ben Johnson's goalline clearance to deny Mahrez, who also hit the outside of the post, before half-time was followed up by Aaron Cresswell bravely sliding in to turn Gabriel Jesus' goal-bound effort away for a corner. It was effectively Cresswell's final contribution as he continued into the post with such force he needed to be replaced by Vladimir Coufal after hurting his back.
It made no fundamental difference to the flow of the game and West Ham will be thankful for the failings of others that their position in the table remains as it was.
What's next?
Manchester City's next Premier League game is at Aston Villa on Wednesday, 1 December (20:15 GMT). West Ham entertain Brighton at London Stadium on the same day (19:30 GMT).
- Follow live text coverage of Sunday's Premier League action
- Go to the Man City page
- Go to the West Ham page
Player of the match
RiceDeclan Rice
Manchester City
Avg
- Squad number8Player nameGündoganAverage rating
6.63
- Squad number20Player nameBernardo SilvaAverage rating
6.61
- Squad number25Player nameFernandinhoAverage rating
6.59
- Squad number27Player nameJoão CanceloAverage rating
6.53
- Squad number26Player nameMahrezAverage rating
6.34
- Squad number9Player nameGabriel JesusAverage rating
6.26
- Squad number16Player nameRodriAverage rating
6.22
- Squad number3Player nameRúben DiasAverage rating
6.21
- Squad number2Player nameWalkerAverage rating
6.20
- Squad number31Player nameEdersonAverage rating
6.10
- Squad number14Player nameLaporteAverage rating
6.07
- Squad number7Player nameSterlingAverage rating
5.73
West Ham United
Avg
- Squad number41Player nameRiceAverage rating
6.69
- Squad number10Player nameLanziniAverage rating
6.48
- Squad number1Player nameFabianskiAverage rating
6.22
- Squad number9Player nameAntonioAverage rating
6.21
- Squad number22Player nameBenrahmaAverage rating
6.15
- Squad number31Player nameJohnsonAverage rating
6.10
- Squad number4Player nameZoumaAverage rating
6.10
- Squad number15Player nameDawsonAverage rating
6.06
- Squad number3Player nameCresswellAverage rating
6.04
- Squad number20Player nameBowenAverage rating
6.00
- Squad number8Player nameFornalsAverage rating
5.98
- Squad number28Player nameSoucekAverage rating
5.92
- Squad number5Player nameCoufalAverage rating
5.84
- Squad number26Player nameMasuakuAverage rating
5.69
Line-ups
Man City
Formation 4-3-3
- 31Ederson
- 2Walker
- 3Rúben Dias
- 14LaporteBooked at 29mins
- 27CanceloBooked at 61mins
- 8Gündogan
- 16Rodri
- 20Bernardo Silva
- 9Gabriel Jesus
- 26Mahrez
- 7SterlingSubstituted forFernandinhoat 87'minutes
Substitutes
- 5Stones
- 6Aké
- 11Zinchenko
- 13Steffen
- 25Fernandinho
- 33Carson
- 80Palmer
- 87McAtee
West Ham
Formation 4-2-3-1
- 1Fabianski
- 31Johnson
- 15Dawson
- 4Zouma
- 3CresswellSubstituted forCoufalat 61'minutes
- 28Soucek
- 41Rice
- 8Fornals
- 22BenrahmaSubstituted forLanziniat 59'minutes
- 26MasuakuSubstituted forBowenat 74'minutes
- 9Antonio
Substitutes
- 5Coufal
- 7Yarmolenko
- 10Lanzini
- 11Vlasic
- 13Areola
- 16Noble
- 20Bowen
- 23Diop
- 33Král
- Referee:
- Michael Oliver
- Attendance:
- 53,245
Match Stats
- Possession
- Home69%
- Away31%
- Shots
- Home19
- Away5
- Shots on Target
- Home9
- Away3
- Corners
- Home8
- Away4
- Fouls
- Home7
- Away6
Live Text
Post update
Full Time
Second Half ends, Manchester City 2, West Ham United 1.
Goal!
Goal! Manchester City 2, West Ham United 1. Manuel Lanzini (West Ham United) right footed shot from outside the box to the top left corner.
Post update
Attempt missed. Tomas Soucek (West Ham United) header from the right side of the box misses to the right. Assisted by Vladimir Coufal.
Post update
Foul by Gabriel Jesus (Manchester City).
Post update
Jarrod Bowen (West Ham United) wins a free kick on the right wing.
Post update
Offside, Manchester City. Fernandinho tries a through ball, but Bernardo Silva is caught offside.
Goal!
Goal! Manchester City 2, West Ham United 0. Fernandinho (Manchester City) right footed shot from the centre of the box to the bottom left corner. Assisted by Ilkay Gündogan.
Post update
Corner, Manchester City. Conceded by Ben Johnson.
Substitution
Substitution, Manchester City. Fernandinho replaces Raheem Sterling.
Post update
Corner, West Ham United. Conceded by João Cancelo.
Post update
Kyle Walker (Manchester City) wins a free kick in the defensive half.
Post update
Foul by Manuel Lanzini (West Ham United).
Post update
Attempt blocked. Rúben Dias (Manchester City) header from the centre of the box is blocked. Assisted by Riyad Mahrez with a cross.
Post update
Corner, Manchester City. Conceded by Pablo Fornals.
Post update
Attempt saved. Ilkay Gündogan (Manchester City) left footed shot from the left side of the box is saved in the centre of the goal. Assisted by Raheem Sterling.
Post update
Attempt saved. Declan Rice (West Ham United) right footed shot from outside the box is saved in the bottom right corner. Assisted by Pablo Fornals.
Post update
Foul by Rúben Dias (Manchester City).
Post update
Michail Antonio (West Ham United) wins a free kick on the left wing.
Post update
João Cancelo (Manchester City) wins a free kick in the defensive half.
- Our coverage of your Premier League club is bigger and better than ever before - here's everything you need to know to make sure you never miss a moment
Comments
Join the conversation
Does anyone actually watch football anymore that has a constructive point of view. This place makes Facebook Look like its full
Of university professors
Chelsea, Man City and Liverpool in a league of there own with West Ham keeping them honest.
COYI -
But we have what it takes to get rid results
Well done the Groundstaff too on a dire day
Hammers, gave it their all, defensively sound, good contrast of styles on display and both carried out games plans well enough, City kept the ball so long that we ran out of steam in crucial moments. Perspective for Irons, on track for a record points tally, QF League Cup, EL group winners and into the last 16.
Onwards and upwards Hammers
COYI
To even be taking it to the big boys is a huge step up for the Hammers. No matter where we end up, it’s a team we can be proud of at least.
Well done City