Big-spending PSG secured their spot in the Last 16 with a comfortable 2-0 away win against Dynamo Kiev, with Argentina striker Ezequiel Lavezzi netting either side of the break.
In the group’s other match, already-qualified FC Porto thumped Dinamo Zagreb 3-0, with Lucho Gonzalez, Joao Moutinho and Silvestre Varela scoring the goals.
Kiev will finish third and drop into the Europa League, while Zagreb are still without a point.
Schalke ensured progression thanks to Christian Fuchs’ winner 13 minutes from the end in their match against Olympiakos, who have qualified for the Europa League by virtue of finishing third in the group.
They are above French side Montpellier, who lost 2-0 at Arsenal – Jack Wilshire and Lukas Podolski with the goals for Arsene Wenger’s side.
Malaga will finish top of the group, despite being held to a 2-2 draw by Zenit St Petersburg. The Spaniards had led through Diego Buonanotte and Seba, but Danny and Viktor Fayzulin got the Russians back on level terms.
AC Milan made sure of a spot in the Last 16 thanks to a 3-1 away to Anderlecht.
Stephan El Shaarawy put the Italians ahead, and Anderlecht’s task was made harder when Bram Nuytinck was sent off. Philippe Mexes then added a spectacular second and Alexandre Pato added a third in between a lone strike from Tom de Sutter.
Zenit and Anderlecht are locked on four points apiece and will battle it out for a Europa League place.
In the ‘Group of Death’, Borussia Dortmund were the surprise winners after a 4-1 thumping of Ajax at the Amsterdam ArenA.
Marco Reus, Mario Gotze and a brace from Robert Lewandowski did the job, with Danny Hoesen scoring a late consolation for the home side.
Real Madrid finished second, despite a 1-1 draw against Manchester City at the City of Manchester Stadium.
Karim Benzema gave Jose Mourinho’s men the lead and, despite Sergio Aguero pulling one back from the spot after Alvaro Arbeloa’s foul, City will finish bottom of the standings.