Liverpool 2-0 Atletico Madrid
Liverpool are through to the last 16 with two matches to spare after beating ten-man Atletico Madrid 2-0 in Group B at Anfield.
Diogo Jota and Sadio Mane gave the Reds a quick two-goal lead in the first 21 minutes and things went from bad to worse for Atletico after they were reduced to ten men nine minutes before the half-time break after Felipe was shown a straight red card for a foul on Mane.
Jota thought he had made it 3-0 for Jurgen Klopp's men early in the second stanza but his goal was chalked off for offside by the Video Assistant Referee (VAR) and Luis Suarez also had a goal for Atletico just before the hour-mark disallowed by the VAR for offside.
Manchester City 4-1 Club Brugge
Manchester City are on the cusp of qualifying for the knockout stages after hammering Club Brugge 4-1 in Group A at the Etihad Stadium.
Phil Foden gave City the lead in the first quarter of an hour but an own goal by John Stones a minute later brought Brugge back into the game.
Riyad Mahrez restored the lead for Pep Guardiola's charges nine minutes inside the second stanza and late goals by Raheem Sterling and Gabriel Jesus sealed an emphatic win.
RB Leipzig 2-2 Paris Saint-Germain
Paris Saint-Germain, who were without Lionel Messi, missed the chance to go top of Group A with two matches to spare after they were held by RB Leipzig in a four-goal thriller at Red Bull Arena.
Christopher Nkunku gave Leipzig an early lead and Andre Silva had a big chance to double their lead in the 12th minute from the penalty spot but his spot-kick was saved by goalkeeper Gianluigi Donnarumma.
Georginio Wijnaldum levelled matters for PSG and gave them the lead just before the half-time break. However, Dominik Szoboszlai netted a stoppage time equaliser for Leipzig.
Borussia Dortmund 1-3 Ajax Amsterdam
Ajax Amsterdam qualified for the round of 16 with two matches to spare after thrashing ten-man Borussia Dortmund 3-1 in Group C at Signal Iduna Park.
Dortmund went down to ten men as early as the 29th minute after Mats Hummels got a straight red-card for a tackle from behind.
Despite being a man down, Marco Reus broke the deadlock for BVB eight minutes before the half-time break from a penalty spot.
However, Dusan Tadic levelled matters for the Dutch side 18 minutes before time and two late goals by Sebastien Haller and Davy Klaassen sealed the maximum points for Ajax.
Sheriff Tiraspol 1-3 Inter Milan
Inter Milan boosted their chances of qualifying for the round of 16 after defeating Sheriff Tiraspol 3-1 in Group D at Stadionul Sheriff.
Marcelo Brozovic broke the deadlock for Inter early in the second stanza before Milan Skriniar doubled their lead in the 66th minute.
Alexis Sanchez put the game to bed for the Italian side eight minutes before time while Adama Traore scored a consolation goal for Sheriff in stoppage time.
Sporting Lisbon 4-0 Besiktas
Sporting Lisbon remain in the running for a spot in the last 16 after hammering Besiktas 4-0 in Group C courtesy of a brace by Pedro Goncalves at Estadio Jose Alvalade.
A brace in the first stanza by Goncalves and a goal by Paulinho gave Sporting a commanding 3-0 lead at half-time and Pablo Sarabia rounded off the thrashing with the fourth goal just before the hour-mark.
Real Madrid 2-1 Shakhtar Donetsk
Real Madrid edged towards the UEFA Champions League knockout stages after a double from Karim Benzema ensured a 2-1 victory over Shakhtar Donetsk on Wednesday evening.
Benzema got the ball rolling early on before Fernando brought Roberto De Zerbi’s men level ahead of halftime only for a certain Frenchman to bag the winner following the second period.
Shakhtar did trouble their more fancied host with shots in and around the final third and Fernando hitting the woodwork, but Los Blancos walked away victors in the end.
AC Milan 1-1 FC Porto
AC Milan registered their first point of the campaign with a 1-1 draw against FC Porto in Group B down at the San Siro Stadium in Milan.
Luis Diaz had Porto off to a dream start in the opening six minutes, but an own-goal from Congolese international Chancel Mbemba in the second half levelled it up.
The result leaves the Rossoneri, who returned to the Champions League after a seven-year absence, bottom of the group as Porto rued a number of missed chances during the match.
Here is a look at the 10 costliest squads in Europe!