Europa League Review: Monaco, Ajax crash out
A 4-1 loss away to Tottenham and Anderlecht's 2-1 win at home to Qarabag mean Monaco failed to qualify for the Europa League round of 32.
Monaco were already behind Anderlecht and needed to win and hope the Belgians lost to ensure passage to the next round.
However, Erik Lamela's first-half hat-trick guided Tottenham to a big 4-1 win which confirmed their place at the top of Group J after the final matchday.
Eredivisie leaders Ajax were also knocked out of the group stages after they could only manage a 1-1 draw at home against Molde.
Ajax needed to win and and hope Fenerbahce lost at home to Celtic, but a 1-1 draw was enough for the Turkish club to progress with Molde in Group A.
The news was not so great for Besiktas however, with a 3-1 loss away to Sporting CP sealing their elimination from the tournament.
Besiktas only needed a draw to advance, and things were looking good when Mario Gomez gave them a 1-0 lead just before the hour-mark.
But three goals in the space of 10 minutes saw Sporting book second in Group H behind Lokomotiv Moscow, who picked up a 3-0 win away to Albanian side Skenderbeu Korce.
Liverpool sealed top spot in Group B after a 0-0 draw away to Sion, which was enough for the Swiss club to go through after Bordeaux's 2-2 draw at home to Rubin Kazan.
In Group C, Borussia Dortmund gave up first place after a 1-0 home loss to PAOK.
Russian club Krasnodar took their place with a 3-0 away win to Qabala.
Napoli were the only club to have a 100 per cent record in the group stages following a 5-2 win over Legia Warsaw.
The Serie A club won all six of their games, scoring 22 goals and conceding just three.
Danish champions Midtjylland join them from Group D after picking up a 1-1 draw at home to Club Brugge.
The two clubs to progress from Group E were already decided before the final matchday, with Rapid Vienna's 2-1 win over Dinamo Minsk meaning they finish above Villarreal, who drew 3-3 with Viktoria Plzen.
Marseille booked their spot in the round of 32 with a 4-2 win away to Slovan Liberec, while Sporting Braga topped Group F with a 0-0 stalemate away to Groningen.
Group G winners Lazio ensured they made it through the group stages unbeaten with a 1-1 draw against Saint-Etienne, who also advanced, while Dnipro Dnipropetrovsk beat Rosenborg 3-0.
Fiorentina sealed their progression with a 1-0 win at home to Belenenses, while Basel secured top spot in Group I with a 1-0 away win against Lech Poznan.
Schalke and Sparta Prague were already qualified for the next round and capped off their dominance in Group K with away wins against Asteras Tripolis and APOEL respectively.
Meanwhile, Augsburg scored an 89th-minute goal to qualify for the next round and kick Partizan out on goal difference.
In the other game of Group L, winners Athletic Bilbao drew 2-2 at home to AZ.