A brace from Jack Wilshere took Arsenal a step closer to the knockout stages of the Champions League with a 2-0 win over Marseille at the Emirates.
Just 28 seconds had elapsed when the England midfielder skipped into the area before curling a majestic shot into the top corner to ease any Arsenal nerves.
They should have doubled their lead before the break as Aaron Ramsey was adjudged to have been fouled by Nicolas N'Koulou but Mesut Ozil's casual run up cost him as Steve Mandanda saved the spot kick.
Wilshere made the points safe from close range with 25 minutes left, finishing off a fine move after Ramsey had fed Ozil into box and the German squared precisely.
But Arsenal will be made to wait until the final matchday to confirm their passage to the last 16, needing to avoid a defeat by three goals at Napoli, after Borussia Dortmund beat the Italians 3-1 in Germany.
Dortmund edged ahead early on as Marco Reus fired home from the spot after Federico Fernandez brought down striker Robert Lewandowski.
Jakub Blaszczykowski made it 2-0 in the second half after a fine sweeping move, finishing from Reus' pass, but when Lorenzo Insigne netted past an out of position Roman Weidenfeller, Napoli had hope of a point.
Those hopes were dashed seven minutes later when Pierre-Emerick Aubameyang clipped the ball over Pepe Reina from Lewandowski's through ball.
Dortmund's victory means all three sides in the Group F could finish on 12 points, if Napoli defeat Arsenal and Dortmund lose in Marseille on the final matchday. Dortmund are guaranteed to qualify if they beat Marseille.
Chelsea sunk to a shock defeat in Switzerland as Mohamed Salah's 87th minute winner meant Basel completed a double over Jose Mourinho's side with a 1-0 victory.
The Egyptian galloped onto a long ball over Branislav Ivanovic to slot past Petr Cech as Chelsea were punished for another sloppy performance on the road.
The Blues did still progress to the knockout stages as only one of Basel and Schalke -- who play each other on the final matchday -- can overtake them.
Schalke drew 0-0 in Romania with Steaua Bucuresti and must beat Basel on the final matchday to progress while the Swiss side only need a draw.
Ajax kept their hopes of reaching the last-16 from Group H alive with a 2-1 victory over Barcelona in Amsterdam.
Frank de Boer's side did the damage against his former side in the first half as goals from Thulani Serero and Danny Hoesen put them in a commanding position.
Barcelona halved the deficit in the second half from the penalty spot after Joel Veltman brought down Neymar and was shown a red card, Xavi converting the penalty.
The runner-up spot will now be between Ajax and Milan, who meet on the final matchday, after the Italians cruised to a 3-0 victory over Celtic in Glasgow.
Kaka opened the scoring, nodding home completely unmarked from six yards out as Valter Birsa swung in a corner.
Celtic failed to learn their lesson as Cristian Zapata made it two, turning home from Antonio Nocerino's ball across goal from another corner.
And Mario Balotelli completed the rout when he latched onto a long ball from Riccardo Montolivo to hold off his man and fire past Fraser Forster.
Porto squandered the chance to move ahead of Zenit, who are second in Group G, after they could only draw 1-1 with Austria Vienna at the Estádio do Dragão.
Roman Kienast put the visitors ahead with a shot from outside the area -- his side's first in this year's group stages.
Jackson Martínez drew Paulo Fonseca's men level just after half-time but despite piling on the pressure in the latter stages, Porto couldn't find a winner.
They must now win away at Atletico Madrid to have any hope of going through after the Spaniards drew 1-1 with Zenit St Petersburg in Russia.
Adrian put Atletico in front in the second half, streaking clear before finishing smartly but a mistake from Thibaut Courtois gifted Zenit an equaliser as he failed to prevent Toby Alderweireld's header looping into his own net.
Zenit travel to Austria Vienna knowing a win will take them into the last-16.