Real Madrid and Beşiktaş booked their places in the round of 16 while Napoli kept their hopes alive and Sevilla made a stirring comeback but Dortmund and Monaco bowed out.
Article top media content
- Real Madrid and Beşiktaş clinch round of 16 places
- Beşiktaş seal top spot in their group, so too Manchester City and Spurs
- Napoli keep hopes alive while Sevilla come from three down to hold Liverpool
- Dortmund, APOEL, Monaco, Maribor eliminated
- Watch highlights of tonight's games
- Last fixtures in these groups on 6 December
Everyone should have the chance to enjoy football, no matter who you are, where you're from or how you play. That's #EqualGame. Find out more at www.equalgame.com.
Spartak go to Liverpool on matchday six still able to qualify but Maribor's European season is over despite substitute Jasmin Mešanović's added-time equaliser after Zé Luís had given the hosts an 82nd-minute lead.
Sevilla's unbeaten home run will now stretch to more than a year after recovering from 3-0 down at half-time. Liverpool seemed set for qualification as group winners thanks to two Roberto Firmino goals either side of Sadio Mané's strike. But Wissam Ben Yedder pulled one back on 51 minutes, then converted a penalty on the hour, his sixth goal in the group. Three minutes into added time Guido Pizarro completed the comeback. Liverpool now lead Sevilla, who last lost at home on 22 November 2016, by a point with Spartak two further back.
Second-half goals from Lorenzo Insigne, Piotr Zielińsk and Dries Mertens gave Napoli the win they needed to keep their hopes alive and move to within three points of Shakhtar. Napoli will finish second on head-to-head if they win at Feyenoord and Shakhtar lose to group winners City.
Raheem Sterling struck with two minues left to maintain City's perfect record and wrap up first position while ending the European hopes of Feyenoord, still without a point.
Beşiktaş have made it through the group stage for the first time and are confirmed as the first Turkish team ever to top a section in this competition, following Talisca's 41st-minute response to Felipe's opener for Porto. The visitors, who welcome eliminated Monaco next time out, lead Leipzig for second spot on head-to-head.
Debutants Leipzig ended Monaco's chances of European progress and were 2-0 up inside nine minutes through an own goal and Timo Werner's strike. Werner slotted a penalty just past the half-hour and although Falcao cut the gap, there was still time before the break for Naby Keita to make it 4-1. Leipzig entertain Beşiktaş on 6 December.
The holders knew a win would book their progress regardless of Dortmund's result, and they won in some style. Karim Benzema struck twice in the first half and, not to be outdone, Cristiano Ronaldo added goals on 49 and 54 minutes to take his season's tally to a competition-leading eight. APOEL trail Dortmund on goal difference for third place.
Already-qualified Spurs wrapped up pole position in the group as they overturned a half-time deficit with strikes from Harry Kane, his sixth of the season in this competition, and Heung-Min Son.
Group A: Basel v Manchester United, CSKA Moskva v Benfica
Group B: Paris Saint-Germain v Celtic, Anderlecht v Bayern München
Group C: Qarabağ v Chelsea, Atlético Madrid v Roma
Group D: Sporting CP v Olympiacos, Juventus v Barcelona