Juventus hit back to keep the heat on Atletico Madrid
Juventus stayed within three points of Group A rivals Atletico Madrid thanks to an important 3-2 victory over Olympiacos.
After Andrea Pirlo had put the Italian champions ahead, Alberto Botia and Delvin Ndinga turned the tables. But an own goal from Roberto levelled matters and Paul Pogba netted the winner.
Arturo Vidal could have made the margin even more comfortable for Juve, but missed a stoppage-time penalty.
Atletico moved closer towards a place in the knockout stages with a 2-0 win at Malmo thanks to goals from Koke and Raul Garcia.
A second-half double from Son Heung-min secured Bayer Leverkusen an impressive 2-1 win at Zenit St Petersburg that put them on the brink of qualification.
Also in Group C, Taslica scored a valuable late goal to give Benfica a 1-0 victory over Monaco - their first win in the pool.
In Liverpool's group, Basle boosted their hopes of qualifying with an emphatic 4-0 win over Ludogorets, avenging their defeat from a fortnight ago.
First-half goals from teenager Breel Embolo and Derlis Gonzalez put the hosts in control, and further strikes after the interval from Shkelzen Gashi and Marek Suchy sealed victory.
In Arsenal's group, Dortmund again put their domestic troubles to one side with a 4-1 victory over Galatasaray.
The victory means the Germans ease into the last 16.
Dortmund have only collected seven points from their first 10 games to leave them second bottom in the Bundelisga.
But those problems have not been evident in Europe as they made it four wins from four in Group D.
Marco Reus scored the only goal of the first half and Sokratis Papastathopoulos doubled Dortmund's lead before Hakan Balta pulled one back.
However, the Turkish side's hopes of a comeback were crushed by Ciro Immobile's strike. A Semih Kaya own goal completed the scoring.
The game was marred by disturbances in the stands, with the match twice stopped by officials in the second half due to flares being set off and thrown onto the pitch.