Liverpool cruised on a historic Champions League night for English football but their incoming midfielder Naby Keita saw his RB Leipzig side ousted.
Manchester City and Tottenham were already assured of joining Manchester United and Chelsea in the knockout stages – but Liverpool’s 7-0 drubbing of Spartak Moscow means five teams from one country made it through to the last 16 of the competition for the first time.
Philippe Coutinho fired a hat-trick as Liverpool – who needed at least a point to be sure of qualifying or a win to finish top – led 3-0 at half-time.
Coutinho converted an early penalty after Mohamed Salah had been hauled down and the Brazilian fired home his second before compatriot Roberto Firmino added a third in the 18th minute. Sadio Mane’s second-half brace sandwiched Coutinho’s third before Salah completed the rout.
The Reds might have faced Keita – the man scheduled to join them next summer – had tournament debutants RB Leipzig pipped Porto to second spot but the German side suffered a late 2-1 defeat to Group G winners Besiktas.
Keita had cancelled out Alvaro Negredo’s early penalty for the Turkish side but their task was made harder when midfielder Stefan Ilsanker was dismissed in the 82nd minute and Talisca scored with a half-volley in the final minute to ensure Besiktas stayed unbeaten.
Porto secured the win they needed to book that second qualifying spot by beating Monaco 5-2.
Vincent Aboubakar’s first-half double and Yacine Brahimi gave Porto a 3-0 half-time lead before Kamil Glik pulled one back for Monaco from the penalty spot.
Nicolao Alex Telles struck the home side’s fourth and Tiquinho headed a late fifth after Radamel Falcao had made it 4-2.
Both sides were reduced to 10 men before half-time when Porto defender Felipe was dismissed for his foul on Monaco midfielder Rachid Ghezzal, who was also shown a straight red card for retaliating.
Manchester City, who had already progressed as Group F winners, lost their 100 per cent record with a 2-1 loss away to Shakhtar Donetsk.
City made seven changes to their starting line-up and were 2-0 down at the interval after goals from the Ukraine side’s Bernard and Ismaily.
Substitute Sergio Aguero converted City’s stoppage-time consolation from the penalty spot after Fred’s foul on Brahim Diaz.
Shakhtar’s victory and Napoli’s 2-1 defeat to Feyenoord means the Ukrainians qualified in second place.
Nicolai Jorgensen headed Feyenoord level after Piotr Zielinski had volleyed Napoli into an early lead and Jerry St Juste headed the Dutch side’s winner in added time, after they had Tonny Vilhena sent off for his second bookable offence.
Group H winners Tottenham ended on a high after a comfortable 3-0 victory at Wembley against Apoel.
Fernando Llorente and Son Heung-min were on target in the first half and Georges Nkoudou scored his first goal for the Londoners late on.
Holders Real Madrid qualified in second place, beating Borussia Dortmund 3-2 after squandering a 2-0 lead.
Borja Mayoral and Ronaldo – who became the first player to score in every Champions League group stage match – put Real 2-0 up inside 12 minutes. Dortmund reduced the deficit through Pierre-Emerick Aubameyang’s brace but Lucas Vazquez volleyed the Spaniards’ late winner.
Elsewhere, Sevilla progressed after drawing 1-1 away to Maribor, where Marcos Tavares’ header was cancelled out by Ganso.