Arsenal ended the season with a 2-1 win over Everton but it was not enough for a first Premier League title in 20 years after Manchester City beat West Ham 3-1.
The Gunners fell behind to Idrissa Gueye’s deflected free-kick but hit back before the interval through Takehiro Tomiyasu’s well-taken strike.
Kai Havertz ensured Arsenal did their job with a late winner from close range but City’s result meant the Gunners had to settle for second place again.
Here’s how we rated the Arsenal players…
David Raya 7
Powerless to keep out Gueye’s deflected free-kick but plucked a Dominic Calvert-Lewin effort out of the air on one of the rare occasions he was called into action.
Ben White 6
Involved in the build up to Arsenal’s equaliser but looked a little jaded and was replaced by the returning Jurrien Timber in the second half.
William Saliba 7
Snuffed out a number of Everton counter-attacks in a characteristically assured display.
Gabriel 6
Found Calvert-Lewin a handful on occasion. Forced off injured on the hour.
Takehiro Tomiyasu 8
Took his goal calmly in a positive attacking display from left-back, having earlier headed Arsenal’s first chance of the afternoon wide. Moved to centre-half for the final 30 minutes.
Clumsy off the ball and conceded the free-kick leading to Everton’s opener. His passing was also erratic and it was no great surprise when he was substituted.
Declan Rice 6
Had a couple of decent sights of goal, scuffing an early shot straight at England teammate Jordan Pickford. Not at his commanding best but important in stopping Everton transitions.
Martin Odegaard 8
Made both Arsenal goals, with a smart cut-back for Tomiyasu and an air-shot into the path of Havertz for the winner. Arsenal’s most effective player.
Forced a smart save from Pickford after an excellent run in the first half and was very lively in Bukayo Saka’s usual position on the right. Took a battering from James Tarkowski, who twice went through him with big challenges.
Leandro Trossard 5
Struggled to make any impact on the game in a disappointing final appearance of the season.
Kai Havertz 7
Scored the winner from close range after good work by Gabriel Jesus and Odegaard. Headed onto the woodwork in the second half – albeit from an offside position. Pressed well from the front.
Substitutes
Oleksandr Zinchenko (Gabriel 60’) 7
Composed in the final half-hour at left-back.
Jurrien Timber (White 69’) 7
Got a great reception on his long-awaiting return from injury suffered in the opening game of the season. Added some impetus down the right flank.
Emile Smith Rowe (Partey 69’) 7
Made a positive impact and went close to a winner when his volley from Martinelli’s cross struck the bar.
Gabriel Jesus (Trossard 78’) 7
Instrumental in the winning goal, nicking possession and playing in Odegaard. A decisive cameo.