Holders AC Milan and Chelsea reached the Champions League knockout stages on Wednesday but Valencia bowed out after a 0-0 draw with Schalke.
Real Madrid still have work to do after losing 3-2 at Werder Bremen with Group C now wide open after Olympiakos won 2-1 at Lazio, who could still qualify despite being bottom.
Last season's beaten finalists Liverpool continued their revival with a 4-1 home win over Porto with Fernando Torres scoring his first two Champions League goals while Besiktas beating Marseille 2-1 also boosted the English side in Group A and kept the Turks in the hunt.
Massimo Donati's stoppage-time goal secured a 2-1 win for Celtic over Shakhtar Donetsk which leaves the Scottish champions needing just a point next week in Milan, with the holders already through after a 1-1 draw at now eliminated Benfica.
Andrea Pirlo put Milan ahead with a superb strike after a quarter of an hour and although Maxi Pereira levelled matters soon after Milan held on to amass 10 points in Group D, one ahead of Celtic and four ahead of Shakhtar.
The Ukraine side, who took an early lead in Glasgow through Brandao before Jiri Jarosik's equaliser on halftime, must beat Benfica at home and hope Milan do them favour despite being through.
The final round of Group D matches takes place a week early because of Milan's involvement in the Club World Cup later in December.
Werder hung on for the win against Real after going ahead on five minutes through Markus Rosenberg.
Robinho levelled but fine goals from Boubacar Sanogo and Aaron Hunt either side of the break put Werder clear before Ruud van Nistelrooy struck with 20 minutes to go.
Also in Group C, Lazio took the lead in controversial fashion on 30 minutes when Goran Pandev slotted in after Tommaso Rocchi's pull back had clearly crossed the byline.
Olympiakos hit back quickly though, with Luciano Galletti firing home from just inside the area and substitute Darko Kovacevic sealed victory for the Greeks in the second half.
Real only require a point to qualify but Lazio need to win in the Bernabeu in two weeks and ideally hope Olympiakos beat Werder for the pair to go through. A Werder victory would put the Germans into the latter phase after a remarkable comeback.
Chelsea, semi-finalists three out of the last four years, will top Group B after overwhelming Rosenborg 4-0 with two first half goals from powerhouse forward Didier Drogba and a free kick five minutes before the break from defender Alex.
Joe Cole scored in the second period.
The Norwegians remain second with seven points and must avoid defeat at Schalke in the last round of matches to stave off the Germans, who stayed in contention with a goalless draw at eliminated Valencia, who had David Albelda sent off on 32.
A Steven Gerrard penalty and Peter Crouch wrapped up Liverpool's win after Lisandro Lopez had equalised for Porto in between Torres's double.
Brazilian Bobo's late effort earned Besiktas their win over Marseille leaving Group A intriguingly poised heading into the final round of matches.
Porto have eight points, Marseille and Liverpool have seven while Besiktas trail on six with Liverpool travelling to the south of France and Porto hosting the Turks.