Paris Saint-Germain struck seven as they marched into the UEFA Champions League round of 16 alongside Chelsea, Dortmund and Benfica.
Article top media content
Lionel Messi, Kylian Mbappé and Neymar were all on target as Paris Saint-Germain hit seven against Maccabi Haifa to seal their place in the round of 16. Chelsea, Dortmund and Benfica also booked spots in the knockout stages on a night that featured 33 goals across eight games and defeat for holders Real Madrid.
UEFA.com rounds up all the action.
Who is through to last 16?
Club Brugge (BEL)
Manchester City (ENG)*
Paris Saint-Germain (FRA)
Real Madrid (ESP)
*Confirmed as group winners
Chelsea are through to the last 16 after ending Salzburg's 40-match unbeaten home run in all competitions. The Blues were irresistible in the first half but had only Mateo Kovačić's improvised finish to show for it – Salzburg keeper Philipp Köhn pulled off a string of fine saves. Sure enough, the hosts levelled soon after half-time thanks to Junior Adamu's composed side-footed finish, but Kai Havertz had the final word when he curled the ball unerringly into the top corner on 64 minutes.
A clinical second-half showing from Milan helped them into second place in Group E, simultaneously ending Dinamo's last-16 hopes. The visitors edged in front just before the interval thanks to Matteo Gabbia's diving header and made sure of the points early in the second half through Rafael Leão and an Olivier Giroud penalty. A Robert Ljubičić own goal compounded a frustrating evening for Dinamo, who can now only finish as high as third in the section.
Key stat: At the age of 36 years and 25 days, Giroud became the oldest of the 62 players to have reached the 20-goal landmark in the Champions League.
02/11: Chelsea vs Dinamo Zagreb (21:00), AC Milan vs Salzburg (21:00)
Shakhtar will have to beat Leipzig on Matchday 6 to progress to the knockout stages after they could only draw in Glasgow. A quiet first half came to life when Giorgos Giakoumakis forced in the opener for Celtic just past the half-hour, but a moment of brilliance from Mykhaylo Mudryk after the break ensured a second 1-1 draw between the teams in this season's competition. Shakhtar can finish no lower than third in Group F, with the result confirming Celtic end fourth.
Leipzig need a point in their final game to earn progress after beating the holders in a rousing home performance. Joško Gvardiol nodded in the opener before Christopher Nkunku blasted in the second off the underside of the crossbar. A brilliant Vinícius Júnior header reduced the arrears on the stroke of half-time, but the Brazilian spurned a fine chance in the second half and Timo Werner made him pay almost immediately with a tap-in. Rodrygo got a late consolation from the spot with the final kick after he had been fouled by Nkunku.
Both sides got the point they required to wrap up the top two spots in Group G in an engaging encounter. Shortly before the hour, Gregor Kobel guessed correctly to push away Riyad Mahrez's penalty after the Algerian international had been tripped by Emre Can. The hosts had the better of the opening half, with City debutant Stefan Ortega denying the lively Karim Adeyemi and Giovanni Reyna and Youssoufa Moukoko poking wide just before the break.
There was little to choose between the teams until the 88th minute, with a youthful Copenhagen outfit twice denied by the woodwork either side of half-time substitute Youssef En-Nesyri's opener. Late efforts from Isco (well worth a watch!) and Gonzalo Montiel sealed the fate of the visitors, who had Davit Khocholava sent off deep into added time. The Danish side – yet to score in Group G – are consigned to fourth spot; Sevilla will finish third and enter the Europa League.
Messi and Mbappé got two apiece as Paris booked their place in the knockout stage in style. Neymar was also on target, while Sean Goldberg's own goal and Carlos Soler's helped Paris score seven for the first time in five seasons in the Champions League. Abdoulaye Seck twice headed in for the visitors, who suffered the heaviest ever loss for an Israeli club in the Champions League. They could yet pip Juventus for a Europa League spot, though.
Juventus's late comeback came too little too late as Benfica held on to reach the last 16. António Silva headed the Eagles ahead with his first senior goal but Juve equalised when Moise Keane bundled in. João Mário scored a penalty and Rafa Silva a brilliant back-heel as Juve conceded three goals during the first half of a Champions League match for the first time. Rafa Silva added another fine finish in the second half and could have had a hat-trick before Arkadiusz Milik and Weston McKennie replied to set up a thrilling finish, but the hosts held on.