Paris - Manchester United and Juventus qualified for the Champions League knockout stage on Tuesday, while three-time runners-up Atletico Madrid bowed out of the competition.
Here, AFP Sport looks at five things we learned from the final games in Groups A-D:
Cracks opening in PSG armour
Tournament favourites Paris Saint-Germain are showing signs of fallibility, after the French outfit suffered their second loss in just four days as they were beaten 3-1 at Bayern Munich. Powered by a front three of Neymar, Edinson Cavani and Kylian Mbappe, PSG had set a group-stage record of 24 goals before kick-off at the Allianz Arena, but were comfortably seen off by the five-time champions despite holding on to seal top spot in Group B.
After their shock defeat by Strasbourg in Ligue 1 at the weekend, cracks are starting to show in Unai Emery's side. The midfield three of Marco Verratti, Adrien Rabiot and Julian Draxler were overrun in the first half and left wide open spaces at the back which Corentin Tolisso exploited for his double.
End of an era for Atletico?
The move to their new Wanda Metropolitano stadium was designed to herald a fresh period of success for Atletico Madrid, but Diego Simeone's side's streak of four straight runs to at least the Champions League last eight was abruptly ended. Atletico, losing finalists to Real Madrid in 2014 and 2016, were ultimately made to pay for two draws against Champions League debutants Qarabag, after both Roma and Chelsea saw off the Azeris twice.
With doubt still surrounding the future of key forward Antoine Griezmann, Tuesday's 1-1 draw at Chelsea could yet signal the end of a wonderful four-year spell for the Spanish club.
Serie A clubs are bidding to restore footballing pride in Italy after the national team's abject failure to qualify for the World Cup, with Roma and Juventus both doing their bit by reaching the knockout stage.
Roma were given the green light to build a new stadium on Tuesday, and celebrated by edging out Azeris Qarabag 1-0 to top Group C. A favourable draw could now put them on the brink of a first quarter-final appearance in ten years.
Last season's runners-up Juve brushed aside Olympiakos 2-0 in Greece to go through, and Napoli will try to overhaul Shakhtar Donetsk and make it three out of three for Italy on Wednesday.
United show their class
Manchester United were never likely to surrender first place in Group A, but they bounced back from a shock loss in Basel last time out by showing their class to come from behind and beat CSKA Moscow 2-1.
Romelu Lukaku's clinical finish to equalise silenced a few doubters and ended a run of only one goal in 12 games. United still sit eight points behind local rivals Manchester City in the Premier League, but could cut the gap in a crucial derby at Old Trafford on Sunday. Jose Mourinho's men look capable of a decent run in Europe too this season, although they will want to avoid Real Madrid and Bayern in Monday's draw for the knockout stage.
Barca continue to do just enough
Barcelona have not been at their free-flowing best for much of the season so far, but still lead La Liga by five points and eased into the last 16 as Group D winners. They struggled for long periods at the Camp Nou against a stubborn Sporting Lisbon, needing a Paco Alcacer strike and an own goal from their former centre-back Jeremy Mathieu to wrap up a 2-0 win.
The changing focus towards substance over style under Ernesto Valverde is a change in ploy from recent years, but consistent results have given Barca a great chance of putting last season's woes behind them with major silverware this term.