AC Milan failed to match their Europa League success of the previous campaign after the Italian club fell 3-1 to Olympiacos, eliminating Gennaro Gattuso's men from the competition well before the round of 16 it reached last season.
Here's who's in and who's out after the early slate of Thursday's matches:
Bayer Leverkusen hammered Cypriot minnows AEK Larnaca to confirm themselves atop the group above Zurich. The result might have been redundant, though, as the Swiss side could only muster a 1-1 draw with Ludogorets anyway.
Red Bull Salzburg were always going to progress as group winners, though they kept their perfect record intact by beating Celtic 2-1. The latter were saved by Rosenborg, however, who held RB Leipzig to a 1-1 stalemate and assured the Scottish giants progressed as runners up.
Slavia Prague booked its ticket in the next round by besting confirmed group winners Zenit St. Petersburg 2-0 at home. The win also eliminates Bordeaux, which did all they could with a 1-0 win over Copenhagen.
Much like Group D, this quartet left nothing to the imagination on the final matchday. Arsenal, who were topping the group regardless, edged Qarabag 1-0 at home with a reserve-heavy squad, while second-place Sporting Clube de Portugal handily defeated Vorskla Poltava 3-0.
AC Milan's European venture is already over. The Serie A club needed only a draw to Olympiacos to book a spot in the knockouts, but a 3-1 loss sends the Greek club through in second instead, behind group winners Real Betis.
The highest chance for entropy was in Group G, where each team still had an opportunity to finish first or last. Ultimately, the standings didn't change at all; Villarreal and Rapid Wien remained in first and second thanks to wins over Spartak Moscow and Rangers, respectively.
Eintracht Frankfurt and Lazio played out a meaningless rubber match on the final day, with the two already secured in first and second, respectively. Marseille, finalists last season, crashed out in last place behind Apollon Limassol, with just one point from six matches.
With everything still mathematically possible leading into the final matchday, Genk took care of business with a 4-0 thrashing of Sarpsborg to hold on to first place. Besiktas, however, lost 1-0 to Malmo, relinquishing their grip on second to the Swedish side.
Sevilla entered the final day three points behind Krasnodar for the top spot, but a commanding 3-0 win over the Russian outfit swapped them in the standings. Standard Liege missed their chance to sneak in after a goalless draw with Akhisarspor.
Dynamo Kyiv fell surprisingly to the already eliminated Jablonec, though the Ukrainians were already assured to win the group. Rennes finished second after leapfrogging Kazakh side Astana with a 2-0 victory.
Chelsea's rampant run through Group L ended after an entertaining 2-2 draw with MOL Vidi. The Londoners progress as group winners and will be joined in the knockout stage by BATE Borisov, who saw off PAOK.