Monaco and Ajax crash out
Monaco and Ajax failed to make it to round of 32, while Liverpool and Tottenham sealed top spot in their respective groups.
A 4-1 loss away to Tottenham and Anderlecht's 2-1 win at home to Qarabag mean Monaco failed to qualify for the UEFA Europa League round of 32.
Monaco was 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 its place at the top of Group J after the final matchday.
Eredivisie leader Ajax was also knocked out of the group stages after it 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 its elimination from the tournament.
Besiktas only needed a draw to advance, and things were looking good when Mario Gomez gave it 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, which 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 its place with a 3-0 away win to Qabala.
Napoli was the only club to have a 100 per cent record in the group stages after a 5-2 win over Legia Warsaw.
The Serie A club won all six of its games, scoring 22 goals and conceding just three.
Danish champion Midtjylland join it 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 it finished above Villarreal, which drew 3-3 with Viktoria Plzen.
Marseille booked its 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 winner Lazio ensured it made it through the group stages unbeaten with a 1-1 draw against Saint-Etienne, which also advanced, while Dnipro Dnipropetrovsk beat Rosenborg 3-0.
Fiorentina sealed its 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, winner Athletic Bilbao drew 2-2 at home to AZ.