The Champions League group stages concluded in heart-stopping fashion with one of the most dramatic final days in the competition's history.

In the end, all four English and all four German teams progressed to the last 16 and they will be joined by three Spanish sides and one team each from Italy, France, Russia, Greece and Turkey.

Neymar starred for Barcelona against Celtic. (AP Images)

Cristiano Ronaldo ends the sequence of matches as top scorer - netting a record nine goals in total - while Zlatan Ibrahimovic was arguably the best player of the group stage.

Some of the bigger sides did not have it all their own way, with Juventus and Porto as chief disappointments, while things were stickier than expected for reigning champion Bayern Munich in the end.

In all, we've seen 772 goals across all the group stage matches and the appetite is certainly whetted for the knockouts in the new year.

That's all until February, folks, but until then, let's examined what we've learned ...

Neymar finally fills in for Messi

Yes, it was only Celtic - which has been very poor in the Champions League this season - but Neymar's virtuoso performance in Barcelona's 6-1 defeat of the Scots is worth highlighting. A 13-minute hat trick, featuring stunning second and third strikes, ensured that the world was talking about Neymar this morning for all the right reasons.

The first edition of the Barca-Celtic battle was dominated by Neymar's perceived play acting, after being kicked by Scott Brown, but there was no way anybody connected with Celtic could attempt to take the shine of his performance this time around.

The 21-year-old, in the absence of Lionel Messi, has struggled to make himself the focal point of Barca's attack, which is what he was signed for. The Blaugrana's form has been sluggish ahead of the winter break as Tata Martino faced the first grumbles of his regime. The game against Celtic, however, was a timely reminder of Neymar's capabilities.

"I needed a match like this," the forward told his club's official website after the game. "I hope it continues."

Neymar now has eight goals in total for Barca, as well as 10 assists, demonstrating that he is compatible with the club's style of play. "What amazes me most about Neymar is how he's involved with the team, how he helps to recover balls," said Martino afterwards. "That's rare for such a player."

The judgment comes harshly when representing one of the Clasico clubs and this individual display will command the headlines.

Last-day drama shows slender margin of error

Borussia Dortmund went from the Europa League to group winner in the Champions League with one late kick of a ball. Had Manuel Pellegrini readied Sergio Aguero with more alacrity then it might have been Manchester City and not Bayern which won their particular group.

Such are the margins separating the winners and losers in the Champions League this season.

Napoli is out after earning 12 points, only City among the qualified runners-up achieved more. Meanwhile, Zenit, on six points, was hammered 4-1 to one of the lowest-ranked teams in the competition, Austria Vienna - and yet still progressed. Galatasaray is also packing its bags for the last 16 after collecting just seven points during a very ordinary group stage campaign.

Milan edged out Ajax, which had five minutes of injury time in which to knock out the 10-man Italians and progress. It was not to be.

It was a straight shootout between Basel and Schalke for the right to go through with Chelsea, a tie which went in the favor of the Germans in a strange group in which everyone beat everyone.

That was the situation, too, when Galatasaray hosted Juventus. Cup final drama.

Shakhtar Donetsk, Bayer Leverkusen Olympiakos and Benfica all had hopes of qualifying up to the last matchday, showing that this season, there was something worthwhile to play for right to the final whistle.

Indeed, before a ball was kicked on matchday six, 23 teams of 32 were in with a shout of progressing.

As for Arsenal, the club's defeat at Napoli means that the English side now will play one of Real Madrid, Barcelona, Atletico Madrid, Paris Saint-Germain or Bayern Munich. The club would not be the favorite in any of those ties.

"Of course to finish second makes the potential draw more difficult," said Arsene Wenger. "That is the frustration, because you feel there was room to do better, but it could have been worse as well tonight."

Juventus - king of the underachievers

Juventus had six matches from which to earn enough points to qualify for the Champions League knockouts, not just the staccato affair against Galatasaray on matchday six in wintry Istanbul.

A club of Juventus' stature and ambition should not be scrabbling around away from home in the mid-December frost looking for a point. The team lost the right to compete in the knockouts by drawing with Copenhagen on the first matchday and tossing away a late lead against Gala in Turin. Yes, the snow churned up the field at the Turk Telekom Arena and made it unplayable but that is no excuse.

"We were punished in an enormous way because we play football," coach Antonio Conte told Sky Italia in the aftermath of his side's elimination. "We were put into a brawl and they did better. On a normal pitch, I don't know how it would have ended. For certain, we could have done better in this competition."

Juventus is not good enough, plain and simple.

Conte's limited expectations have been evident since the beginning of the season - conceding that Juve would be fighting Gala for second place before a ball had been kicked and predicting that it would be a long time before any Italian team, his own included, won the Champions League title.

Such a defeatist attitude is totally at odds with how Conte the player - a warrior - comported himself. And now Juve is out. Conte's built an excellent team for Serie A and Beppe Marotta has added terrific quality in the transfer window, but the coach has been found out in the Champions League.

The fact of the matter remains that Juve has won only one of its last eight Champions League matches and that was against a modest Copenhagen after being awarded two penalties.

It's time to stop blaming UEFA and snow. It is time for introspection. If that means Conte walks, then so be it.

Kevin Grosskreutz - a hero forged in Dortmund

"Kevin Grosskreutz may like to have a beer tonight," said Jurgen Klopp on Wednesday after the utility man secured qualification from the group stage with the decisive strike against Marseille. "He is a super boy and did everything right in this game and scored the winning goal. That was a very nice evening."

It was a fitting reward for Grosskreutz that he should be the one to take Dortmund to the knockout phase as a group winner. A life-long Dortmund fan, he can be found in the stands cheering his teammates on with fellow supporters when not in the matchday squad.

The 25-year-old was on the books of Dortmund as a teenager before being released. He rejoined Klopp's side from Rot-Weiss Ahlen in 2009 and has racked up over 200 appearances for his "dream club" since.

Grosskreutz is not the most talented player in the Dortmund squad by any stretch of the imagination but his work ethic and dedication are irreplaceable commodities for the Westfalen outfit.

He has watched the stars like Mario Gotze and Shinji Kagawa depart for bigger clubs and better money, he has seen his place as a starter in Klopp's team evaporate, but he is the man to whom the coach always turns when things are sticky. Wide midfield, central midfield, right back, left back and even in goal - Grosskreutz goes everywhere for Dortmund. In the middle of the club's worst injury crisis of the Klopp era, his goal and status as local hero is apt.

"It's an amazing feeling," he told the club's official website. "Celebrating with the fans after the game is the best reward for such a win. Our fans are crazy in the good sense of the word. The team and the fans really deserved this win. I will happily spend a bit in the hotel bar to celebrate with the team."

Bayern can only stop itself

Bayern Munich featured only once in this column before now and that was when Arjen Robben quarreled with Pep Guardiola over the allocation of a penalty kick. The suggestion that day was that only bickering and in-fighting could prevent Bayern from seemingly fulfilling its destiny of picking up another Champions League title.

Matchday six changed all that, though.

We were given an indication to another threat against the German champion. The club's complacency, its apathy in defeat at home to Manchester City, was noticeable for its incongruousness. Not once this season had Bayern played like that. The team was lethargic and looked disinterested.

Had Alvaro Negredo snaffled the half-chance Dante presented to him, it would have been City and not Bayern which played the last 16 as a seeded team. By the time Bayern realized what was being done, the team couldn't react.

It was a strange game of football and one which will embolden the other big contenders in the Champions League. Cristiano Ronaldo and Zlatan Ibrahimovic will be licking their lips after watching Dante and Jerome Boateng defend as poorly as they did on the night. There are brittle elements in this Bayern team that were obscured by the club's faultless early season form.

While there are no indications that Guardiola's team is about to unravel, the mask certainly slipped a bit.