Leicester suffered Champions League heartbreak for the second year in a row as they fell to a 4-2 defeat at home to Tottenham.
With Chelsea losing 2-1 at Aston Villa, a victory for Leicester would have been enough to take them to Europe's premier club competition.
And with 15 minutes left, the Foxes were set to do just that as they led 2-1 thanks to two Jamie Vardy penalties.
However, three late goals from Tottenham - including a Kasper Schmeichel own goal and a Gareth Bale double - means Leicester have to settle for Europa League football once again.
Tottenham's victory assures them of a place in the new Europa Conference League as they finish seventh.
Liverpool join Chelsea, Man Utd and Man City in next season's Champions League as they got the win they needed at Anfield, defeating Crystal Palace 2-0 thanks to a Sadio Mane double.
West Ham return to Europe and finish the season in sixth after Pablo Fornals scored two and made the other for Declan Rice in a 3-0 win over Southampton.
Arsenal humiliatingly miss out on European football altogether despite beating Brighton 2-0 through Nicolas Pepe's double.
Leeds overtook Everton to finish in ninth position after winning 3-1 against already-relegated West Brom. Carlo Ancelotti's men went out with a whimper as they were thumped 5-0 by champions Man City, with Sergio Aguero striking twice in his final home game before leaving this summer.
City's cross-city rivals Man Utd prepared for the Europa League final perfectly by winning 2-1 at Wolves, despite fielding a shadow XI. Anthony Elanga and a Juan Mata penalty did the damage.
Elsewhere, bottom of the league Sheffield United beat Burnley 1-0 while Fulham return to the Championship after falling 2-0 at home to Newcastle.
View our detailed player statistics for the Premier League at the link below.
Premier League: Player Stats, Team Stats, Fixtures, Results