For a moment, this appeared as though it may be the end of Manchester City’s relentless winning run.
A 20th straight victory in all competitions was gradually slipping away at Etihad. Pep Guardiola and his players may have had to settle for a mere 11-point lead at the top of the Premier League table. And yet, still they march on.
John Stones’ winning goal midway through the second half maintained City’s remarkable, record-breaking streak of wins, denying West Ham a point that their play arguably deserved after Michail Antonio had cancelled out Ruben Dias’ breakthrough.
David Moyes is still waiting for his first away win against ‘top six’ opposition in more than a decade - a run now encompassing 41 matches - but he will take heart from the performance and solace from the fact that some opponents are simply unstoppable.
City simply keep finding ways to win, this time through their centre-back pairing. Incredibly, Stones and Dias have now scored more goals than they have conceded when starting alongside each other this season.
Guardiola’s side move 13 points clear at the summit but the title race is no longer a contest. The immediate question is how exactly how long City can keep this up, with European and world records in sight.
Even with one foot in the Champions League quarter-finals after a controlled away leg against Borussia Monchengladbach in midweek, change was afoot for City - seven, to be precise, with Sergio Aguero making only his fourth start of the season and his first since October.
A training ground injury to Lukasz Fabianski forced second-choice goalkeeper Darren Randolph into the starting line-up but City struggled to test the stand-in during the opening stages. If anything, West Ham showed why they are to be taken seriously as top-four contenders, preventing Guardiola’s side from registering a single shot in the first half hour.
That was partly down to Kevin De Bruyne looking off-the-boil on only his second start since returning from injury but it only takes a moment from a player of his majesty to come alive.
One left-footed cross from the right wing after the breakdown of a corner caught West Ham momentarily off-guard. Stones had stayed in the penalty area but so had his centre-back partner Ruben Dias, who read the flight of De Bruyne’s sublime delivery perfectly to arrive late at the far post and nod past Randolph for his first City goal.
West Ham did not deserve to be behind. Not only had Moyes’ side otherwise kept City quiet, they had enjoyed several spells of promising possession too. Antonio’s spin and shot which clipped the base of the post and went wide was a warning to City, but one that they failed to heed.
The first Etihad goal that Guardiola’s side have conceded from open play since October began with a City throw-in on the right-hand touchline and Aguero losing possession midway in his own half.
With inverted left-back Oleksandr Zinchenko tucked into the centre of midfield, City were exposed. Vladimir Coufal was released into the wide open space down West Ham’s right. The excellent Jesse Lingard diverted Coufal’s cute cut-back from the byline goalwards, only for Antonio to make sure by tapping-in on the goal-line.
City could have no complaints. West Ham were comfortably holding their attack at arm’s length and threatening on the rare occasions that they regained possession. If Moyes’ players could only stay alert on set-pieces, they would escape without any further punishment and at least a point.
Yet midway through the second half, as City toiled in pursuit of a single clear-cut chance, Dias’ strike partner stepped up to the plate. After the breakdown of yet another corner, Stones stayed upfield once again.
De Bruyne and Zinchenko helped work the ball out to the right, from where Riyad Mahrez found Stones in space inside the penalty area to sweep a composed finish home.
West Ham gradually came back into the contest but lacked the same incision that they showed in the first half. Their best hopes of an equaliser came at the very end, with Antonio’s downward header across goal just escaping Tomas Soucek and Issa Diop miscuing another headed attempt.
On another day, either chance may have been converted, but there is simply no denying this City side.