Kai Havertz’s late finish gave Arsenal a 2-1 win over Everton, but their Premier League title bid fell just short on the final day.
The Gunners went into the match needing a favour from West Ham, who travelled to face Man City, but Pep Guardiola’s side took the lead through an early brace from Phil Foden and the pattern of the afternoon was set.
Idrissa Gana Gueye’s deflected free-kick to open the scoring flattened the mood further at the Emirates Stadium, even if it was briefly lifted when Takehiro Tomiyasu equalised immediately and Mohammed Kudus pulled one back before half-time in Manchester.
Kai Havertz and Emile Smith Rowe both hit the bar for Arsenal in the second-half as the hosts pushed for a winner, which eventually came with a couple of minutes remaining as the German turned into an empty net.
That was not enough to force any late title drama, with City cruising to a 3-1 win over West Ham, but Arsenal had at least the comfort of knowing they did their job on the final day, with a 16th win in 18 Premier League matches since the turn of the year.
Arsenal had hoped for a favour from rivals Tottenham on Tuesday night, but City's 2-0 win a few miles up the road ensured Pep Guardiola's men went into the final day as league leaders.
Nevertheless, a party atmosphere greeted the players onto the pitch despite the absence of Bukayo Saka due to a slight muscle strain. Havertz signalled the Gunners intent when he drilled over during the first minute, but the partisan feeling around the Emirates dissipated when news filtered through that Phil Foden had put City ahead inside two minutes.
While the crowd went flat, Arsenal stuck to the task at hand and Tomiyasu headed wide before Declan Rice was denied by Jordan Pickford, who then produced a superb reaction save to prevent Seamus Coleman putting through his own net.
As whispers of another City goal echoed around the stadium, it was met with a roar of defiance but Everton almost took the lead in the 31st minute.
Gueye led the counter-attack and found Dominic Calvert-Lewin, who fired against the post before he sent his follow up shot into the side-netting. Some Everton fans thought that was in but they were able to celebrate nine minutes later.
Gueye saw his 25-yard free kick deflect off Rice's head to leave David Raya with no chance in the Arsenal goal. It was starting to go horribly wrong at the Emirates, but a dramatic turn of events before half-time provided hope for Arteta's team.
First, Tomiyasu levelled after 43 minutes with a smart finish after a trademark Martin Odegaard cut-back before the decibel levels of the home crowd went up a notch when West Ham pulled one back against City.
Arteta got the crowd engaged again with 21 minutes left when summer signing Jurrien Timber was sent on for his first appearance since August due to a serious knee injury.
It helped give Arsenal a second wind as Pickford denied Odegaard before substitute Emile Smith Rowe smashed a volley onto the crossbar.
The winner did arrive with a minute left when Gabriel Jesus latched on to Ashley Young's poor pass and found Odegaard, who teed up Havertz to fire in from close range for his 14th goal of the season.
Cheers had broken out seconds earlier as West Ham briefly made it 3-2 at the Etihad, but as Arsenal fans celebrated, VAR ruled out the Tomas Soucek effort against City for handball.
It once and for all ended the Gunners' title charge, but they held on to push City all the way.