So, we now know the 16 clubs who will battle it out in this season's Champions League knockout stages, with the draw for the next round taking place on Monday 16 December.
There were some surprises in the groups, a fair few wonder goals, and plenty of memorable moments. Inter and Ajax are the high-profile casualties who didn't quite make it to the next phase of the tournament, while debutantes Atalanta came back from the dead to book their place in the last 16.
Here's our Champions League team of the group stages.
Goalkeeper & Defenders
Marc-Andre ter Stegen (GK) - On his return to Germany, ter Stegen was immense as he single-handedly denied Borussia Dortmund victory at Signal Iduna Park. The Barcelona keeper proved his class this year, conceding only three goals in the six games.
Achraf Hakimi (RB) - BVB made it to the knockouts, despite a testing start to the campaign, with Hakimi's performances integral in sealing their progression. He hit crucial doubles in wins over Inter and Slavia, without which the Bundesliga side would have been dead and buried.
Dayot Upamecano (CB) - RB Leipzig reached the last 16 for the first time in their history, and they can thank Timo Werner and Upamecano for that. The frontman was electric up top, though Die Roten Bullen needed the intimidating presence of their leading centre-back to guide them through an awkward group.
Kalidou Koulibaly (CB) - What's left to say about this man? He's a monstrous force of nature at the back for Napoli and was once again a standout figure for the Italians. Unsurprisingly, Koulibably was a titan in Carlo Ancelotti's defence.
Cesar Azpilicueta (LB) - When Chelsea needed him most, their captain stepped up. Azpilicueta was the one who got the Blues back into the contest in their mind-boggling 4-4 draw with Ajax, before he gave them breathing space in the decisive 2-1 defeat of Lille on Tuesday as Frank Lampard's men edged into the next round.
Serge Gnabry (RM) - Tottenham Hotspur would have been dreading the thought of facing Serge Gnabry for a second time this season after the winger hit them for four in north London. He couldn't add any more to his tally, but that devastating display in October will live long in the memory.
Frenkie De Jong (CM) - People thought
Alex Oxlade-Chamberlain (CM) - 2018/19 was a year of personal frustration for Oxlade-Chamberlain as he worked his way back from a serious knee injury. He's been making up for lost time this term, making the most of his three Champions League appearances by scoring three goals, with his second against Genk arguably the goal of the tournament so far.
Hakim Ziyech (LM) - Sadly for Ajax, their journey ends here. Sadder still is the fact we won't get to see the virtuoso talents of Ziyech, who racked up five assists and netted twice fir Ajax in Group H. he continued where he'd left off last campaign, mesmerising viewers with his effortless playmaking ability.
Robert Lewandowski (ST) - As if anyone else was going to spearhead the attack. Lewandowski truly came into his own this autumn, which is strange given his strong record over the last decade. However, he's never reached the level he's at now, hitting ten goals in only five appearances to top the scoring charts.
Erling Haaland (ST) - Just two goals behind Lewandowski is Red Bull Salzburg wonderkid Erling Haaland. It was a breakthrough campaign for the 19-year-old, with his domineering displays up front catching the attention of every big club in Europe. He can pretty much choose where he wants to play next.