Paris Saint-Germain 1-0 Club Brugge
Paris Saint-Germain booked their spot in the last 16 with two matches to spare after their 1-0 win over Club Brugge extended their perfect record at the top of Group A at Parc Des Princes.
Mauro Icardi got the opener for PSG in the 21st minute and Brugge had a chance to equalise after getting a penalty with 14 minutes remaining but Mbaye Diagne's spot-kick was saved by goalkeeper Keylor Navas.
Real Madrid 6-0 Galatasaray
Real Madrid are virtually through to the last 16 after thumping Galatasaray 6-0 to solidify second spot in Group A at the Santiago Bernabeu.
Rodrygo scored a hat-trick, while Karim Benzema netted a brace with Sergio Ramos also among the scorers, as Los Blancos thrashed the Turkish giants.
Red Star Belgrade 0-4 Tottenham Hotspur
Tottenham Hotspur took a major step towards qualifying for the knockout stages after thrashing Red Star Belgrade 4-0 thanks to a brace by Son Heung-Min in Group B at Stadion Rajko Mitic.
Giovanni Lo Celso broke the deadlock 16 minutes before the break, while Son scored two quick goals around the hour-mark and Christian Eriksen added the fourth goal five minutes before time.
Atalanta 1-1 Manchester City
Ten-man Manchester City kept their top spot in Group C despite playing to a 1-1 draw with Atalanta at Stadio Guiseppe Meazza.
Raheem Sterling got an early goal and the Citizens should have been 2-0 up with two minutes remaining of the first stanza after getting a penalty but Gabriel Jesus missed the spot-kick .
Mario Pasalic levelled matters for Atalanta just after the break. There was drama towards the end after City substitute goalkeeper Claudio Bravo was red-carded in the last nine minutes, with Kyle Walker keeping goal for the remainder of the game.
Bayer Leverkusen 2-1 Atletico Madrid
Ten-man Bayer Leverkusen kept their chances of reaching the knockout stages alive after upsetting Atletico Madrid 2-1 in Group D at Bay Arena.
Thomas Partey netted an own goal just before the break, while Kevin Volland made it 2-0 just after the break. However, Bayer were reduced to ten men six minutes before time after Nadiem Amiri was red-carded while Alvaro Morata netted a consolation.
Dinamo Zagreb 3-3 Shakhtar Donetsk
Two stoppage time goals from Junior Moraes and Mateus Martins salvaged a point for ten-man Shakhtar Donetsk after coming from behind to draw 3-3 with ten-man Dinamo Zagreb in a Group C battle at Stadion Maksimir.
Bruno Petkovic of Dinamo cancelled out Alan Patrick's opener for the visitors, while Luka Ivanusec and Arijan Ademi gave the home side a 3-1 lead late in the game but Moraes and Martins found two stoppage time goals to force a 3-3 draw, amidst all the drama of both sides having a player sent off, with Nikola Moro being sent off for Dinamo, while Marlos Bonfim got the marching orders on Shakhtar's side.