Arsenal were lucky to eke out a point against Paris Saint-Germain, while Manchester City confirmed their last 16 place thanks to a 1-1 draw against Borussia Monchengladbach. Barcelona had Lionel Messi to thank for their win over Celtic, with Bayern Munich falling to a surprising loss in Russia.
The Gunners could have confirmed top spot in Group A with a win at home against the French champions, but Arsene Wenger's side were, again, quite poor, leaking too many chances, and had it not been for the profligacy of Edinson Cavani, the same could have been said of the reverse fixture as well, the Premier League side would have failed to pick up even a single point.
In the end, Arsenal held PSG to a 2-2 draw, but those two goals means the team from Paris have a better head-to-head record, which in turn means all they need to do is match Arsenal's result on the final matchday to go through as group winners.
Cavani opened the scoring for PSG in the 18th minute, before Olivier Giroud scored from the spot, after Grzegorz Krychowiak had brought down Alexis Sanchez. Then a Marco Verrati own goal put Arsenal in the lead, only for Alex Iwobi's own self goal, via Lucas Moura, to bring the match back to parity and put PSG in the driver's seat in the group.
The battle for third place and a Europa League spot in Group A will go down to the last game, after Ludogorets and Basel played out a goalless draw.
In Group B, Napoli and Dynamo Kyiv failed to find the back of the net as well, while Besiktas pulled off a stunning comeback against Benfica. Down 3-0 after Goncalo Guedes, Nelson Semedo and Ljubomir Fejsa had given Benfica the big advantage just past the half hour mark, Besiktas produced a brilliant come-from-behind draw.
Cenk Tosun made it 3-1 in the 58th minute, before Ricardo Quaresma netted from the spot seven minutes from time. Vincent Aboubakar then completed the comeback in the 89th minute to give Besiktas a point and keep them on course to qualify for the last 16.
Barcelona were confirmed as the winners of Group C after they picked up a 2-0 win over Celtic, with Messi scoring both the goals. Manchester City are also through, courtesy a 1-1 draw in a match in which both teams had a player sent off.
David Silva cancelled out Raffael's opener, before Lars Stindl and Fernandinho both received red cards in the second half. The draw, though, was enough for City to go through to the last 16.
Bayern Munich's hopes of topping Group D ended with a 3-2 loss to Rostov, while Atletico Madrid remained perfect with five wins from five, courtesy a 2-0 result over PSV – Kevin Gameiro and Antoine Griezmann scoring the goals.
Results: Group A: Arsenal 2-2 PSG; Ludogorets 0-0 FC Basel.
Group B: Besiktas 3-3 Benfica; Napoli 0-0 Dynamo Kyiv.
Group C: Borussia Monchengladbach 1-1 Manchester City; Celtic 0-2 Barcelona.
Group D: FC Rostov 3-2 Bayern Munich; Atletico Madrid 2-0 PSV Eindhoven.