The line-up for Monday's UEFA Champions League round of 16 draw is complete after Milan and Leipzig booked their places in some style, while Benfica struck five goals in a frantic last half-hour to grab top spot ahead of Paris.
Article top media content
AC Milan and Leipzig both won 4-0 to complete the line-up for the UEFA Champions League round of 16 as the group stage concluded with a bang.
Defeat consigned Salzburg and Shakhtar to third and a place in the UEFA Europa League, where they will be joined by Juventus despite their defeat by Paris. The drama went right to the last, though, as João Mário's last-gasp strike saw Benfica pip Paris to top spot in Group H, ensuring the Portuguese side will be seeded for Monday's draw.
UEFA.com rounds up all the action.
Who is through to last 16?
Man City (ENG)
Real Madrid (ESP)
Club Brugge (BEL)
Paris Saint-Germain (FRA)
Chelsea became the sixth club to record 100 Champions League wins as they came from behind to beat Dinamo. All the goals came in the first half, with Bruno Petković nodding the visitors ahead and Raheem Sterling cancelling it out. Debutant Denis Zakaria then rifled in the winner, via Sadegh Moharrami on the line. Pierre-Emerick Aubameyang hit the crossbar as Chelsea dominated the second half and gained revenge over a side who shocked them on Matchday 1.
Key stat: Dinamo have not kept a clean sheet away from home in the group stage since a goalless draw at Manchester United in September 1999.
Veteran Olivier Giroud starred as Milan eased past Salzburg to reach the last 16 for the first time since 2014. Giroud, 36, settled Rossoneri nerves with an early header before he had a strike ruled out for offside. Salzburg – who would have qualified with a win – impressed for the rest of the first half but conceded 41 seconds after the break when Giroud set up Rade Krunić for a header. Giroud then lashed in after a fine run from Rafael Leão and teed up Junior Messias for a late fourth.
Key stat: Seven-time winners Milan have registered back-to-back Champions League victories for the first time since October 2011.
Madrid cruised to the win they required to cement top spot in Group F. Luka Modrić and Rodrygo set them on their way with coolly-taken penalties, and Thibaut Courtois then prevented Josip Juranović from responding in kind with a spot kick of his own. The hosts went up a gear after the interval, Marco Asensio making it 3-0 with a superb first-time finish on the half-volley before Vinícius Júnior turned in from close range and Federico Valverde stroked into the corner. Jota's stunning free-kick was some consolation.
Key stat: Madrid have scored in 42 of their last 43 group stage home games.
The Bundesliga outfit are through to the knockout stages for the third time in four seasons after swatting aside a Shakhtar team that began the evening with their own designs on a top-two spot. Goals early in each half in Warsaw from the excellent Christopher Nkunku and André Silva effectively ended Shakhtar ambitions. Dominik Szoboszlai added a well-taken third and Dani Olmo's shot deflected in off Valeriy Bondar to give Leipzig a measure of revenge following their 4-1 Matchday 1 loss to the Pitmen.
Key stat: Leipzig have won four in a row in the Champions League – the German side's best ever run.
Who is switching to the Europa League?
Shakhtar Donetsk (UKR)
Sporting CP (POR)
The English champions wrapped up their group campaign in style but were forced to come from behind against a spirited Sevilla side. The visitors threatened a shock when Rafa Mir powered in a header but Josep Guardiola's men looked a different prospect after the break and equalised via 17-year-old Rico Lewis' thumping drive. Substitute Kevin De Bruyne provided a delicious pass for Julian Alvarez to apply a cool finish, before the Argentina international turned provider for another replacement, Riyad Mahrez.
Key stat: Aged 17 years 346 days, Lewis became the youngest player to score on his first start in the Champions League, overtaking Karim Benzema's 2005 record for Lyon against Rosenborg (17 years 352 days).
Copenhagen got their first goal of Group G in their final match but it was not enough to earn a first win. Indeed, it was the German side who went ahead in the first half through Giovanni Reyna but a composed finish from Hákon Arnar Haraldsson had the teams level again before half-time. Dortmund almost grabbed a winner through 17-year-old substitute Youssoufa Moukoko, but his shot shortly after coming on rebounded off the post.
Key stat: Copenhagen have lost only one of their last 15 home matches in the group stage, with each of the last five ending in draws.
A sublime early strike from Kylian Mbappé helped Paris to victory, though the visitors had to settle for second in Group H on away goals scored following a remarkable conclusion in the other match. After Mbappé's ruthless long-range opener, Leonardo Bonucci swept in from a cross to equalise with his first Champions League goal since 2016. Substitute Nuno Mendes made an instant impact with Paris's 69th-minute winner, his first goal in the competition.
Key stat: At 23 years 317 days old, Mbappé is the youngest player to score 40 goals in Champions League history – 187 days younger than next youngest Lionel Messi was when he reached the landmark.
Benfica scored five goals in the last 31 minutes to sensationally snatch top spot in Group H. Needing to better Paris's result in Turin by five goals, Gonçalo Ramos headed in the opener on 20 minutes but it was soon 1-1 when Tjarron Chery converted from the spot. It remained that way until just before the hour when substitute Petar Musa headed in, then Alex Grimaldo curled in a low free-kick and the superb Rafa Silva prodded in a fourth. Henrique Araújo netted on 88 minutes and a long-range blast from João Mário in added time sparked wild scenes.
Key stat: Benfica's tally of 14 points in Group H is their best ever return in a Champions League group stage.