Watch all the highlights of goals and key plays as the Champions League group stage comes to a close.
Liverpool left no doubt in securing one of the final four places that remained up for grabs as the Champions League group stage. The Reds thrashed Spartak Moscow 7-0 to win their group, joining Sevilla, Porto and Shakhtar Donetsk as clubs claiming the final spots in the round of 16.
Napoli ultimately fell short, losing to Feyenoord on a day in which it needed to win and have Manchester City beat Shakhtar. Neither happened, as Man City suffered its first defeat of the season in any competition after fielding a largely second-choice squad against its Ukrainian foe.
In a match of lesser consequence, Cristiano Ronaldo became the first player to score in all six Champions League group matches, tallying in Real Madrid's 3-2 win over Borussia Dortmund.
Manchester United, PSG, Roma, Barcelona, Liverpool, Manchester City, Tottenham and Besiktas are through as group winners, while FC Basel, Bayern Munich, Chelsea, Juventus, Sevilla, Shakhtar Donetsk, Porto and Real Madrid are through as second-place finishers.
CSKA Moscow, Celtic, Atletico Madrid, Sporting CP, Spartak Moscow, Napoli, RB Leipzig and Borussia Dortmund will head to the Europa League round of 32 as third-place finishers.
Here are the final results for the day's matches:
Maribor 1, Sevilla 1
Liverpool 7, Spartak Moscow 0
Feyenoord 2, Napoli 1
Shakhtar Donetsk 2, Manchester City 1
RB Leipzig 1, Besiktas 2
Porto 5, Monaco 2
Real Madrid 3, Borussia Dortmund 2
Tottenham 3, APOEL 0
Watch highlights of goals and key plays from throughout the final day of group play below:
SALAH MAKES IT SEVEN
On a day like Liverpool is having, you'd fully expect Mohamed Salah to factor into the scoring. So he scored the Reds' seventh goal of the day. If not for PSG's record output, Liverpool would have set the new standard for most goals in a single group stage.
VAZQUEZ RESTORES REAL MADRID'S LEAD
After blowing a two-goal lead and having a Cristiano Ronaldo would-be go-ahead goal controversially disallowed, Real Madrid went back in front of Borussia Dortmund thanks to a wonderful goal from academy product Lucas Vazquez with about 10 minutes to go.
MANE MAKES IT SIX
Liverpool is leaving nothing to chance today. Sadio Mane's second of the day has the Reds laughing their way to the knockout stage.
Liverpool have now scored 22 goals in the group stage of the Champions League, beating the English club record of 21 previously held by Manchester United.— Gary Lineker (@GaryLineker) December 6, 2017
AUBAMEYANG PULLS DORTMUND EVEN
On an odd sequence, Pierre-Emerick Aubameyang tallied his second of the day to pull Dortmund even with Real Madrid. Everyone thought Aubameyang was offside, and even after having the first attempt saved, Aubameyang chipped the keeper from close range to make it 2-2.
MANE ADDS TO LIVERPOOL ROUT, COUTINHO CAPS HAT TRICK
There won't be a capitulation this time. Liverpool has added to its big lead vs. Spartak Moscow, with Sadio Mane making it 4-0 on a sensational goal and Philippe Coutinho completing his hat trick shortly after and surely sending the Reds on their way to a first-place finish and the knockout stage.
SON DOUBLES TOTTENHAM'S LEAD
Son Heung-min finished off a fantastic combination with a left-footed laser to double Tottenham's lead over APOEL and inch Spurs closer to another three points in what was deemed by most to be the competition's Group of Death.
AUBAMEYANG PULLS ONE BACK
It's all academic for Dortmund, but for morale, this one could help. Recently maligned forward Pierre-Emerick Aubameyang scored off a perfect cross from Marcel Schmelzer just before halftime to pull a goal back vs. Real Madrid and make it 2-1 to the hosts.
ABOUBAKAR NETS HIS SECOND
Vincent Aboubakar has his second goal for Porto against already-eliminated Monaco, which strengthen's the Portuguese side's chances of advancing. Besiktas continues to do its part to help, leading RB Leipzig, who would head down to the Europa League knockout stage as a third-place finisher.
BERNARD GOLAZO STUNS CITY
Napoli won't be happy with this one. Shakhtar Donetsk is up 1-0 on Manchester City thanks to a curling strike from Bernard. If Shakhtar Donetsk can avoid a loss, it will go through as a second-place finisher.
Ismaily doubled the lead soon after, strengthening Shakhtar's hold on the knockout place and dooming Napoli, which allowed Feyenoord to score an equalizer through Nicolai Jorgensen.
LLORENTE OPENS TOTTENHAM ACCOUNT
It's been a slow start to life at Tottenham for Fernando Llorente, but given an opportunity to start vs. APOEL, the Spanish forward got on the board with a lovely 20th-minute opener. The result is good news for Dortmund, which could finish third in the group despite not winning a match, and head to the Europa League knockout stage.
COUTINHO, FIRMINO BOOST LIVERPOOL'S CHANCES
Liverpool is off to yet another 3-0 lead in the Champions League, with Coutinho netting his second and Roberto Firmino following soon after to pile on vs. Spartak Moscow. Of course, in Liverpool's last match in the competition, it blew a 3-0 lead to Sevilla and was forced to draw 3-3.
PORTO SCORES, GETS HELP FROM BESIKTAS
Vincent Aboubakar's opener for Porto, plus Alvaro Negredo's penalty for Besiktas vs. RB Leipzig has Porto in position to go through as a second-place finisher over the German side, though there's plenty of time to go.
REAL MADRID PILES ON DORTMUND'S WOES
Borja Mayoral finished in the eighth minute at the Bernabeu to put Real Madrid up 1-0 on winless Dortmund, and Cristiano Ronaldo followed four minutes later with a stunning curler, becoming the first player ever to score in all six Champions League group stage games.
COUTINHO STRIKES FROM THE PK SPOT
Liverpool is hoping to remove all doubt from the equation by beating Spartak Moscow, and it's off to a good start after Philippe Coutinho's fourth-minute penalty kick.
NAPOLI GETS AN EARLY GOAL
Piotr Zielinski gave Napoli the start it needed at Feyenoord, scoring in the second minute. The Serie A power still needs help from Manchester City (in the form of a win vs. Shakhtar Donetsk) in order to go through.
Here are the lineups for all of the day's matches:
Maribor vs. Sevilla
Liverpool vs. Spartak Moscow
Feyenoord vs. Napoli
Shakhtar Donetsk vs. Manchester City
RB Leipzig vs. Besiktas
Porto vs. Monaco
Real Madrid vs Borussia Dortmund
Tottenham vs. APOEL
The final 16 teams will learn their first knockout round fate on Monday, when the pairings are drawn in Nyon, Switzerland.