The champions knew they only needed to beat the Hammers to stay ahead of Arsenal after the two teams entered the final day of the campaign going head-to-head for the title.
The two teams won their respective games as Pep Guardiola’s men overcame the challenge of West Ham in David Moyes’ last game in charge.
Arsenal also won their clash with Everton, beating them 2-1, but City’s victory ensured they stayed on top.
Foden fired the Citizens in front in the first minute before doubling the home side’s advantage shortly after.
Mohammed Kudus reduced the deficit for the visitors before the halftime break but Rodri extended City’s lead in the second half and they held on to celebrate a fourth consecutive title triumph.
It was a more difficult outing for Arsenal who went behind after Declan Rice deflected Gana’s ambitious free-kick.
Takehiro Tomiyasu struck a fine finish to equalise for the Gunners just before halftime before Kai Havertz netted a late winner.
It was, however, not enough for Arsenal to end their 20-year wait for the league title.
Liverpool, who finished in third position, gave Jurgen Klopp the perfect parting gift as they romp to a 2-0 win over Wolves. Alexis Mac Allister and young defender Jarell Quansah were the goal-scorers for the Reds.
At Selhurst Park, Jean-Philippe Mateta bagged an excellent hat-trick and Ebere Eze claimed a double as Crystal Palace handed Aston Villa a 5-0 walloping. The Villans, however, had Champions League football sealed before this final-day outing.
Tottenham Hotspurs ended their league campaign with a brilliant 3-0 win at Sheffield United to seal fifth spot behind Aston Villa.
Newcastle United recorded a thrilling 4-2 win at Brentford but the Magpies were beaten to sixth place by Chelsea, who registered a narrow 2-1 win at home to Bournemouth.
Luton Town, Burnley, and Sheffield United were the relegated teams as Nottingham Forest celebrated their survival with a fine 2-1 win at Burnley.