Manchester City made it an extraordinary 20 consecutive wins as they overcame the high-flying Londoners thanks to goals from Ruben Dias and John Stones, after Michael Antonio had equalised on the stroke of half time.
West Ham were excellent in denying City the spaces in which they love to operate, and can consider themselves unlucky to not leave with a point. Declan Rice and Tomas Soucek, in particular, were highly impressive.
Credit must also go to the home side, considering not even 72 hours previously they were in Hungary beating Borussia Monchengladbach.
The home side dominated early possession without threatening, while West Ham created the first notable chance as Jesse Lingard’s goal-bound shot was blocked from close range by Stones, following Soucek’s header across goal.
On the half hour mark, and with their first shot of any sort, City reminded everyone just why they are so far clear in the league.
There appeared little danger as Kevin de Bruyne cut inside from the right touchline, but this is de Bruyne. He spotted the clever run of Ruben Dias, but the ability to send a driven 50 yard pass perfectly onto the defender’s head while on his wrong foot is something almost nobody else in world football could replicate.
Dias could hardly have missed. He did not. Having had nothing to do, Darren Randolph suddenly found himself picking the ball out of his net.
In credit to West Ham, the goal seemed to encourage them to being bolder in both their attacking and pressing, with City suddenly finding it harder to get out of their own half.
The warning came on 41 minutes.
Lingard may have been just offside when receiving Rice’s pass, but play continued and his whipped low cross found Antonio at the back post, whose shot on the turn bounced off the base of the post.
City did not listen.
Just three minutes later, a poor throw-in by Kyle Walker saw West Ham quickly spread play to the unmarked Vladimir Coufal down the right. His cut back to Lingard was good, and the Englishman diverted the ball to Antonio to tap in from barely a yard out.
In fairness, it was fully deserved,
Half time: Manchester City 1-1 West Ham
West Ham continued the second half in the same vein, with the pace of Antonio on the break a constant danger, although Stones and Dias were doing a good job to mainly nullify his threat.
City were still struggling to create chances, but slowly took control as the half wore on. De Bruyne sent a ball across the six yard box that narrowly evaded Sergio Aguero, while Riyad Mahrez and de Bruyne himself had shots well blocked in dangerous positions.
In the 68th minute, City found the breakthrough.
A cleared corner was reworked to Mahrez inside the box. After turning Ben Johnson inside out he squared to Stones to finish powerfully from 12 yards, with what was only City’s third shot on target.
The hosts were clearly struggling following their midweek exertions, so it was no surprise that they were content to draw the sting from any possible comeback with controlled, endless possession.
A Phil Foden corner was met by Stones, who could only direct the attempt into a pack of away defenders, but City were doing an excellent job at holding West Ham at arm’s length.
Then, with only 10 seconds to play, West Ham found their chance.
A cross from Lingard somehow found Issa Diop unmarked in the middle, with his header across goal just out of reach of the sliding Soucek at the far post.
The whistle blew moments later to deny West Ham any further chances. It was harsh on the away side, who ended the game having had an almost identical number of chances to the hosts, but City continue their inexorable march towards another Premier League crown.
Full time: Manchester City 2-1 West Ham
Man of the Match: John Stones and Ruben Dias
Impossible to split them. Both scored, both coped brilliantly with the pace of Antonio on the counter, and both dominated the late barrage of long balls to help secure the win. It is the defence that wins you titles.