There was to be no David Moyes miracle at Etihad Stadium on an afternoon when Manchester City lifted the Premier League trophy for a record fourth successive season.

After Phil Foden’s deadly double had put Pep Guardiola’s men firmly on the road to victory inside the opening 18 minutes, Mohammed Kudus did, at least, give the champions a jolt just before the break.

But Rodri’s ninth goal of the campaign on the hour gave City ample breathing space over both the Hammers and second-placed Arsenal, who had needed Moyes boys to upset all the odds.

City’s victory at Tottenham Hotspur on Tuesday evening had already brought them into this final game of 2023/24 in pole-position in the title race and, within just two minutes of kick-off, Guardiola’s men were now racing clear entering the last lap of the campaign.

With his team already sitting at the top of the table – two points clear of Arsenal – the Spaniard knew his side’s fate was firmly in their own hands and thanks to Foden’s quick-fire goal, they soon found themselves yet further ahead of the Gunners, who were praying for that Manchester miracle at the Etihad and no slip-ups against Everton at Emirates Stadium.

Long-time City target Lucas Paquetá lazily yielded possession on his own 18-yard line and, with the ball being worked out to Bernado Silva on the right, the Portuguese playmaker squared across the edge of the Hammers penalty box, where the fleet-footed Foden stepped inside James Ward-Prowse before depositing an inch-perfect curler under the left-hand angle.

Last Saturday’s 3-1 victory over languishing Luton Town had already guaranteed the Hammers ninth spot and signing off in his 262nd and final game in charge of West Ham across two spells, Moyes made two switches as Aaron Cresswell and Konstantinos Mavropanos came into a five-man defensive line-up for Jarrod Bowen (ill) and substitute Angelo Ogbonna.

West Ham had not beaten City in any of their last 16 top-flight encounters – a winless run stretching back to September 2015, while the Scot had never beaten Guardiola in any of his 15 matches against him.

Certainly, the formbook was stacked heavily against the Hammers with City embarking on a club-record run of 43 successive home games without defeat in all competitions, while the Hammers arrived at Etihad Stadium both without a clean sheet in their last 17 outings, having already conceded one more league goal (71) than during their wretched relegation campaign of 2010/11.

Five days on from that win in the capital, Guardiola made two changes with Stefan Ortega - who had produced some match-saving heroics against Spurs after emerging from the bench, when keeper Ederson was forced to retire with a fractured eye socket - now took the gloves, while Jeremy Doku came in for substitute Mateo Kovačič.

The airborne Alphonse Areola had come nowhere near to stopping Foden’s opener but with City smelling blood, flying Frenchman then beat out two long-range Kevin De Bruyne belters before twice denying Doku, too.

But after Rodri recklessly lashed into the side-netting, Foden again showed his fellow Citizens the way to goal on 18 minutes. 

Another slick build-up saw the ball worked out to Doku on the left flank and he sent an inviting low cross towards the penalty spot, where the dual Football Writers’ Association Footballer of the Year and Premier League Player of the Season raced in front of Kurt Zouma to curl a low left-footer inside the base of the right-hand upright.

Now two down to Foden’s 27th goal of the campaign, the Hammers had everyone in sky blue encamped in their half as Manuel Akanji and De Bruyne both peppered the overworked, albeit agile, Areola into defiant stops while the curiously subdued Erling Haaland then failed to convert from just a couple of yards when it surely would have been far easier to score.

Ten minutes before the break, Ortega finally took a break from leaning on his goalposts to race out and make a touchline clearance from the escaping Michail Antonio sending the Claret and Blue army into a vociferous burst of ‘Bubbles.’

And with the partying home fans briefly resting their vocal chords, the 3,065 travelling East Enders then saw Kudus unleash an angled 15-yarder that City’s stand-in stopper clawed aside before cautious Kyle Walker then shepherded Vladimír Coufal’s deep, right-wing cross behind for West Ham’s first corner of the afternoon.

It may already have looked too late for the Hammers but they were certainly starting to come out of their shells and, when Ward-Prowse floated the consequent flag-kick to the far post, Tomàš Souček and then Mavropanos juggled the ball into the path of Kudus who – back to goal – sent an unstoppable, acrobatic overhead volley ripping in to the net.

With West Ham surviving a Video Assistant Referee review for a possible handball against Souček in the build-up to the Kudus cracker, Moyes must have departed at the break wishing that his side had shown as much belief and intent at the start of a one-sided half just as they had at the end of those opening 45 minutes. 

Having briefly released their stranglehold in the closing stages of the first period, it quickly became business as usual for City after the restart, though, as De Bruyne and Foden both went close before the hosts did, indeed, restore their two-goal advantage on the hour mark.

Strolling in from the right side of the West Ham area, De Bruyne squared to Bernardo Silva, who cut back to Rodri and he sent an 18-yard grasscutter back through the pack and, although Areola managed to get a groping glove to the shot it still had enough power to cross the line.

With Edson Àlvarez stepping from the bench to replace Emerson, the Hammers reverted to a flat back four and the newly-arrived Mexican wasted no time collecting his 17th domestic booking of the campaign for tripping Bernardo Silva.

George Earthy also came on for a brief cameo as Antonio departed before Danny Ings replaced the pedestrian Paquetá and, in the closing moments, Souček might just have set up an interesting late twist to the title tale, when he diverted the ball into the net after Kudus had forced a last-gasp corner.

This time, though, the VAR review did not go the Czech Republic international’s way and his effort was ruled out for handball, leaving City to stroll through the final throes of the game knowing that fourth successive Premier League title was safely heading into the Etihad Stadium trophy room, 

“I hope that people will look back and see that progress has been made at West Ham United by this manager,” said Moyes as he departed into the Manchester sunset safe in the knowledge that he had delivered a third top 10 finish and a major European trophy during those 262 games with the Hammers.

Man City: Ortega, Walker, Gvardiol, Akanji (Aké 71), Dias, Rodri, Bernardo Silva, De Bruyne, Doku, Foden (Kovačić 90+1), Haaland, Lewis. Unused subs: Carson, Stones, Grealish, J. Álvarez, Nunes, Bobb, Lewis.

West Ham United: Areola, Coufal, Emerson (E. Álvarez 71), Cresswell, Zouma, Mavropanos, Ward-Prowse, Souček, Paquetá (Ings 86), Kudus, Antonio (Earthy 81). Unused subs: Fabiański, Johnson, Cornet, Ogbonna, Casey, Mubama.

Booked: E. Álvarez (71).

Referee: John Brooks.