Stefan Ortega
A surprise pick for his Premier League debut, Ortega was good under pressure with the ball, and stood firm to make a good save from Bowen in the first half. 6
Kyle Walker
Named Manchester City captain in Ilkay Gundogan and Kevin De Bruyne's absence, Walker recovered from a slow start to stop the West Ham attacks down his side. 6
Ruben Dias
Some good last-ditch tackling, and he showed his leadership when things weren't going City's way. It's hard to see him not start another game for City this season. 6
John Stones
Forced to drop into defence more than advance into midfield, although Stones did pop up in the box on occasion. Another solid performance. 6
Nathan Ake
Recalled to the starting XI, Ake looked a little rusty until his much-needed goal after half-time to open the scoring. A fit-again Ake will be crucial to City's chances in the run-in, and this goal underlines his importance at both ends of the pitch. 7
Rodri
How did he not score in the first half, seeing his shot bounce off the post and along the goalline? Stood firm under West Ham pressure and dictated play once again. 6
Bernardo Silva
Asked to cover more of the base of midfield, Bernardo was quietly effective. He earned applause from his manager for one particular clearance as West Ham swarmed. 6
Julian Alvarez
After the highs of Fulham, this was a more subdued and quiet performance from Alvarez. Giving the ball away too often, he struggled to get in the game behind West Ham's stubborn tactics. 5
Riyad Mahrez
A poor first half was immediately improved after the break by his pinpoint cross for Ake to open the scoring. 6
Jack Grealish
Grealish's influence in this team continues as he hit the post in the first half, and won the free-kick for Ake's goal with some direct running. And he got the assist for Haaland's record-breaking goal. 8
Erling Haaland
His only notable touch in the first half was a header over the bar. His only notable touch in the second half was his record 35th Premier League goal of the season. After some good all-round performances, Haaland reminded City what he was always brought in to do - score important goals. 7
Substitutes
Manu Akanji (on 76)
Solid at left-back, as Aymeric Laporte was overlooked again. 6
Phil Foden (on 76)
His goal took a wicked deflection, but it would have troubled Lukas Fabianski had it been on target. Must be near a start soon. 7
Kalvin Phillips (on 90)
No time to mark