Borussia Dortmund guaranteed progression as Group D winners with Robert Lewandowski scoring twice in a 4-1 thrashing of Ajax at the Amsterdam ArenA.
Marco Reus, Mario Gotze and Lewandowski put the in-form Germans out of sight by half-time, and after Lewandowski had added his second of the night, Danny Hoesen grabbed a consolation for the home side with four minutes left.
Porto and Paris St Germain will play off in Paris next month to determine the winners of Group A after both sides underlined their progression to the knockout stages with easy wins.
Porto remain a point clear at the top of the group after a 3-0 home win over pointless Dinamo Zagreb, Lucho Gonzalez putting them ahead in the 20th minute before second-half strikes from Joao Moutinho and Silvestre Varela.
And the French side also rubber-stamped their qualification with a 2-0 win over Dynamo Kiev in Ukraine, with Ezequiel Lavezzi opening the scoring on the stroke of half-time and adding a second soon after the break.
Christian Fuchs scored the only goal of the game in the 77th minute as Schalke 04 beat Olympiakos 1-0 to ensure qualification from Group B and give them a one-point advantage over second-placed Arsenal.
Malaga qualified for the Champions League knockout phase as Group C winners despite a second-half comeback from Zenit St Petersburg, who claimed a 2-2 draw.
The points looked like they were heading in only one direction when the Primera Division side took a two-goal lead inside nine minutes - Diego Buonanotte opening the scoring and Sebastian Fernandez profiting from a goalkeeping error.
But Zenit fought back well and goals from Danny (49) and Viktor Fayzulin (86), earned them a share of the spoils.
AC Milan's 3-1 win at Anderlecht meant they will join Malaga in the knockout stages. Stephan El Shaarawy put Milan in front before Bram Nuytinck was sent off for the Belgians. Philippe Mexes added a second, Tom De Sutter reduced the deficit for the hosts but Alexandre Pato made it three in injury time.