Bayern Munich, Juventus and Paris Saint-Germain became the first teams to make it through into the last 16 of the Champions League competition, after registering wins in match-day four.
The Parisians and Bayern are the only two sides with 100 per cent records in the competition and are likely to qualify as group winners with two rounds of matches remaining.
Paris Saint-Germain have had a troubled campaign in Ligue 1, but their continental campaign has been flawless.
They have picked 12 points out of a maximum of 12, and will only need a single win to ensure they finish top of the group.
Real Madrid have dragged their campaign back on track following the disappointing defeat in Paris followed by a 2-2 draw against Club Brugge, and have peaked at the right moment.
They are likely to finish second unless they entirely collapse in the last two matches, which looks highly unlikely.
Group winners - PSG
Runners up - Real Madrid
In Group B, a troubled Bayern Munich have put their recent struggles aside, and just like PSG, their Bundesliga form has not affected their campaign in Europe.
Bayern opened their campaign with a 3-0 win against Red Star Belgrade, before drowning Tottenham 7-2 in the second match. They then beat Olympiacos 3-2 away, before a 2-0 win at home.
Tottenham look favourites to pick second spot in the group, having won two consecutive matches against Red Star Belgrade.
They will, however, have to travel to face Bayern, with the other match against Olympiacos, who are on three points.
They are not in danger of losing the second spot.
Group winners - Bayern Munich
Runners up - Tottenham
Manchester City lost the chance to book their qualification on Wednesday night when they were held to a 1-1 draw away to Atalanta. They had a perfect record until then, but their qualification is under no threat whatsoever.
Their closest rivals Dinamo Zagreb and Shakhtar Donetsk are all on five points and will host the Ukranian side in their next fixture before travelling to Croatia for their last match.
They will most likely top the group, with the real battle being in the runners up spot. Dinamo and Shakhtar drew 2-2 in their first match in Ukraine, before a 3-3 draw in Croatia on match-day four.
Shakhtar's remaining two matches will see them travel to England to face City, before hosting Atalanta, while Dinamo play away to Atalanta first before hosting the English Champions.
The Ukranian side might have a slight advantage over Dinamo and might take the runners up spot.
Group winners - Manchester City
Runners up - Shakhtar Donetsk
Juventus have already booked a spot in the next round, thanks to another win in Russia over Lokomotiv Moskova.
They are in no danger of losing the top spot either, with Atletico Madrid, their closest challengers stumbling in a 2-1 loss on Wednesday night.
The Spanish side, currently on seven points with a trip to Italy among the remaining fixtures, might find the going a bit tough, but will most likely hold on for second spot in the group.
Leverkusen and Lokomotiv are on three points each but will have to win their remaining matches for any chance of making through from the group; highly unlikely.
Group winners - Juventus
Runners up - Atletico Madrid
Liverpool and Napoli were and still are clear favourites to make the next round, as they hold first and second spot in the group with a point separating them.
Carlo Ancelloti's men lost the chance to top the group ahead of their meeting in England after they were held to a 1-1 draw in match-day four at home to Salzburg, but still have a chance of pulling it off.
The Reds will be eager to avenge their 2-0 loss in September in Naples, but the Italians will be glad to host their last match at home against Genk, who are the group's whipping boys, while Klopp's men will travel to face the unpredictable, highly-scoring Salburg.
Group winners - Napoli
Runners up - Liverpool
The 'Group of death'. Barcelona are currently atop the standings, but it's a close tie and so much hard to predict. The Catalans, on eight points, have not been at their best this campaign, and lead Borrusia Dortmund by a point with Inter Milan third on four.
The Italians will have themselves to blame after they blew a two-nil lead to lose 3-2 to Dortmund on Tuesday.
Remaining fixtures; Barcelona will host Borussia Dortmund before a trip to Inter Milan in their last group match, while Borrusia's trip to Spain will be followed by a home match to Slavia Prague.
Inter Milan will host Slavia Prague in their next tie before rounding up group action against the Catalans; tough contests right there.
Verdict: quite unpredictable but Barcelona might carry the day alongside Inter Milan
RB Leipzig are not relenting on their top spot in the group and are leading on nine points, two ahead of Lyon going into the last two matches.
The battle is between the two sides, even though Zenit have an outside chance if they can topple Lyon, who have to travel to Russia before hosting group leaders Leipzig in the last match.
Zenit, on the other hand, will travel to Portugal for a tricky match against Benfica in their last group assignment.
Group winners - RB Leipzig
Runners up - Lyon
One of the most competitive and unpredictable groups. Top spot is shared by three teams all on seven points, with Chelsea and Ajax still favourite to sail to the next round.
Their 4-4 draw on Tuesday was entertaining but did not help any of the two sides as they allowed Valencia to catch up with them after a comeback win over Lille.
Chelsea will next travel to Valencia, who won the first match at Stamford Bridge, with Ajax away to Lille.
The last round of matches will see Ajax hosting Valencia, while Chelsea will have the advantage of playing the group's whipping boys, Lille at home.
Group winners - Ajax
Runners up - Chelsea