Arsenal missed out on their first Premier League title since 2004 despite beating Everton as Manchester City took the glory.
To be crowned champions, the Gunners needed to beat the Toffees and hope City failed to win against West Ham.
Arsenal suffered a setback when Idrissa Gueye’s deflected free-kick put Everton in front, although Takehiro Tomiyasu equalised three minutes later.
While Arsenal did eventually hold up their end of the bargain with Kai Havertz’s late winner, ultimately City’s victory over West Ham took matters out of their hands.
Phil Foden’s early double for City at Etihad Stadium effectively ended the lingering hopes Arsenal had of a first title in 20 years.
The Gunners were further frustrated as Everton took the lead in north London despite the home side’s dominance.
After Thomas Partey fouled Dwight McNeil 25 yards out, Gueye’s free-kick took a huge deflection off the forehead of Declan Rice and flew into the net past the wrong-footed David Raya.
Arsenal responded quickly, Tomiyasu equalising with a fine low finish from the edge of the area following a pull-back from Martin Odegaard.
Havertz and Emile Smith Rowe both struck the woodwork in the second half, as belief visibly drained at the end of a long, losing battle for silverware.
Arsenal did find the winner, however, although it came in controversial circumstances.
After Havertz tucked the ball in from close range, the video assistant referee recommended that the goal be disallowed for a Gabriel Jesus handball in the build-up.
But after reviewing the footage at the side of the pitch, referee Michael Oliver allowed the goal.
Emotional rollercoaster as Arsenal fall short
At kick-off, it was unlikely Arsenal would deny City a record fourth successive Premier League title, but faint hope remained.
The task for Mikel Arteta’s side was further complicated by Bukayo Saka being ruled out because of a muscle issue.
When City scored twice in the first half, though, the Gunners effectively needed snookers.
Arsenal could not have done much more on the day. They could have been out of sight early on against Everton had it not been for a series of fine saves from Jordan Pickford, most notably when one on one with Gabriel Martinelli.
And the crowd, which had fallen flat within minutes of the start as news of Foden’s strikes filtered through, was re-energised both by Tomiyasu’s equaliser and reports that Mohammed Kudus had pulled it back to 2-1 at Etihad Stadium.
There were even widespread suggestions that West Ham had pulled level, with fans caught on camera celebrating a phantom Hammers equaliser. Some supporters were even asking journalists at Emirates Stadium for confirmation of the real score in Manchester.
Those celebrations turned to defiance when Rodri restored City’s two-goal advantage.
It summed up the emotions, and the cruelty, of the Premier League title race – one in which Arsenal have come up just short.
One small upside was the return of Jurrien Timber from a serious knee injury, coming on in the second half for his first appearance since the opening day.
Everton push Gunners close
Although they secured their Premier League safety well in advance of the final day – despite points deductions – Everton did not go on holiday early.
While Arsenal dominated possession, the visitors were dangerous on the counter. Dominic Calvert-Lewin struck the post following an incisive attack, shortly before Gueye’s opener.
Despite this defeat, Everton’s form since the start of April provides hope for the future despite Everton’s ongoing uncertainties, as Sean Dyche attempts to build solid foundations on Merseyside.
Veteran full-backs Seamus Coleman and Ashley Young, both now out of contact but offered new deals, started this game – although it was Young’s loose pass which led to the winning goal.