Corentin Tolisso struck twice as Bayern Munich beat Paris St Germain 3-1 and briefly threatened to usurp the Ligue 1 side at the top of Group B.
Bayern needed just eight minutes to get their noses in front when Robert Lewandowski stabbed home after David Alaba had got his head to James Rodriguez's cross, and they increased their lead eight minutes before the break.
Four minutes after Neymar had seen his shot turned away by keeper Sven Ulreich, midfielder Tolisso powered home a header from another James delivery to further boost their hopes.
Kylian Mbappe calmed PSG nerves five minutes after the restart when he put the finishing touch to a fine move involving Marco Verratti and Edinson Cavani, but Tolisso made it 3-1 with 21 minutes remaining.
Marcus Rashford ensured Manchester United progressed to the last 16 as group winners as they came from behind to see off CSKA Moscow.
Despite dominating the first half, United fell behind on the stroke of half-time when Mario Fernandes crossed for Santos Vitinho to fire in a shot which clipped Alan Dzagoev as it flew into the net with off-field Daley Blind playing him onside.
However, fine finishes from Romelu Lukaku and Rashford within seconds turned the scoreline on its head with 25 minutes remaining and Jose Mourinho's men coasted over the finishing line.
They topped Group A ahead of Basel, who clinched second place with a 2-0 victory over Benfica in Lisbon.
The Swiss outfit got off to the perfect start when Mohamed Elyounoussi headed them into a fifth-minute lead from Michael Lang's cross.
They doubled their advantage 20 minutes into the second half when Dimitri Oberlin headed home from close range, and that was enough to condemn the Portuguese to a sixth successive defeat.
Celtic claimed a Europa League berth by finishing third, but did so in disappointing fashion as they lost 1-0 at home to Anderlecht.
The Belgians, who had enjoyed the better of the first half, won it 17 minutes into the second half when defender Jozo Simunovic deflected Pieter Gerkens' header into his own net.
Chelsea's 1-1 home draw with Atletico Madrid proved costly as Roma took advantage to top Group C.
The Blues enjoyed marginally the better of a tight first half with Alvaro Morata and Davide Zappacosta both being denied by keeper Jan Oblak.
Minutes after Blues old boy Filipe Luis had rattled a post, Saul Niguez gave the visitors a 56th-minute lead, and although the home side were level with 15 minutes remaining courtesy of Stefan Savic's own goal, they could not find a winner.
Roma needed Diego Perotta's 53rd-minute header to get past Azerbaijani side Qarabag to book their place in the last 16 as group winners.
Barcelona topped Group D after a hard-fought 2-0 victory over Sporting Lisbon with Paco Alcacer's 59th-minute header and a stoppage-time own goal from Jeremy Mathieu seeing them through.
They will be joined in the knockout stages by Juventus, who won by the same score at Olympiacos with Juan Cuadrado and Federico Bernardeschi on the scoresheet.