Paris Saint Germain reached the last 16 of the Champions League as superb first-half goals from Edinson Cavani and Neymar helped them to a 4-1 win at Red Star Belgrade.
The result lifted the French champions to the top of Group C on 11 points from six games, two ahead of Liverpool who also qualified thanks to a 1-0 home win over Napoli that left them ahead of the Italian side on goals scored.
The visitors dominated the first half in Belgrade, and Cavani fired them ahead with a 10th-minute tap-in from close range after Kylian Mbappe raced clear of his marker and squared the ball back to the Uruguay striker.
Neymar doubled Paris St Germain's lead in the 40th minute with a brilliant individual goal as his shimmies and lightning footwork left several markers flat-footed before the Brazil forward stroked the ball past goalkeeper Milan Borjan.
Roared on by a 55,000 home crowd, Red Star came out with renewed purpose in the second half and pulled one back when defender Marko Gobeljic unleashed a sumptuous volley after a fine cross from the left by full back Milan Rodic.
But PSG weathered the storm and put the game beyond Red Star's reach as Brazilian midfielder Marquinhos buried an unstoppable header past Borjan in the 74th minute and Mbappe completed the rout with a clinical stoppage-time finish.
Inter Milan were knocked out of the Champions League after they could manage only a 1-1 draw at home to Group B's bottom club PSV Eindhoven and finished third behind Tottenham Hotspur.
The Dutch side, with only one point from their first five games, took a shock lead in the 13th minute when Hirving Lozano headed home after Kwadwo Asamoah lost possession in defence.
The visitors then survived incessant Inter pressure until Mauro Icardi headed in from Matteo Politano's cross in the 73rd minute. At that point, Inter were heading into the last 16 as Tottenham Hotspur were losing to Barcelona.
Yet Tottenham later equalised to draw 1-1 at Barcelona and squeezed through ahead of Inter on their head-to-head record after the two sides finished with eight points.
An under-strength Borussia Dortmund deepened AS Monaco's season-long misery with a 2-0 away victory that ensured they finished top of Champions League Group A.
Raphael Guerreiro got both goals for the Germans, the first when he tapped in following a fine counter-attack with a quarter of an hour gone and the second two minutes from time when he curled a shot into the top corner from around 10 metres out.
It was another fine performance by Dortmund, who even without several of their rested regulars extended their season's record to 17 wins, four draws and just one defeat in all competitions.
Atletico Madrid were denied top place in Group A after a goalless draw away at Club Bruges.
The Germans started the final match day two points behind Atletico, but by beating Monaco 2-0 away ended tied on 13 points with the Spanish club and took top place based on the head-to-head scores between them.
Bruges finished third in the standings and will play in the Europa League in the new year.
There were few scoring chances at the Jan Breyel Stadium, with the home team coming closest in the 74th minute when defender Luan Peres was denied, minutes after coming on for his debut in European club competition.
Porto struggled to a 3-2 away victory over Galatasaray in their final Champions League group match but the Turks stayed third in Group D and secured a spot in the Europa League's round of 32.
Porto, who had already secured top spot in the group, took the lead against the run of play in the 17th minute with a well-timed Felipe header from a free kick.
Moussa Marega doubled the lead when he converted a 42nd minute penalty, finding the net for the fifth successive group-stage match.
The hosts, who needed a win to make sure of third place, had failed to score in the competition since September but did break their goal drought with a penalty of their own from Sofiane Fenghouli in first-half stoppage time.
Lokomotiv Moscow were desperate for a win against already-qualified and injury-hit Schalke 04 to have any hope of snatching third place away from Galatasaray.
They could not find the back of the net, however, against the lacklustre Germans, who had already clinched second place and a spot in the competition's knockout stage.
Schalke struck in stoppage time through Alessandro Schoepf to condemn the Russians to fourth place on three points, one behind Galatasaray.