There were no losses for any of the four English clubs in the Champions League group stages, with good results seeing all four sides push towards the knockout stages.
Liverpool confirmed their place at the top of Group B with two games remaining, beating Atletico Madrid 2-0 at Anfield.
Diogo Jota and Sadio Mane both scored early goals for the Reds before Felipe was sent off for the visitors.
AC Milan and Porto drew 1-1 in the other match in the group, which saw the Portuguese side move into second place.
Luis Diaz opened the scoring, before former Newcastle defender Chancel Mbemba scored an own goal to ensure the points were shared in Italy.
A breeze for Manchester City
In Group A, Manchester City cruised past Club Brugge with an emphatic 4-1 win to all-but confirm their spot in the round of 16.
Goals from Phil Foden, Riyad Mahrez, Raheem Sterling and Gabriel Jesus sealed the win for City, who now top the group.
Second placed PSG could only manage a 2-2 draw against RB Leipzig, which saw the German side crash out of the competition.
Georginio Wijnaldum scored a brace for the Parisians, but goals from Christopher Nkunku and Dominik Szoboszlai stopped the visitors from going top of Group A.
United held
Manchester United yet again needed some European magic from Cristiano Ronaldo to ensure they weren’t defeated in the Champions League, drawing to Atalanta 2-2.
The Red Devils came from behind twice, both times through Ronaldo, as they cancelled out goals from Josip Ilicic and Duvan Zapata to stay top of Group F.
Villarreal are behind United only on the head to head rule (they were defeated 2-1 at Old Trafford) following their 2-0 win over BSC Young Boys.
Former Premier League players Etienne Capoue and Arnaut Danjuma were on target for the Yellow Submarine.
Holders Chelsea looking strong
Chelsea were also victorious in Group H, beating Malmo 1-0 thanks to a second half strike from Hakim Ziyech.
The win all-but confirmed their qualification for the round of 16, now needing just a point from their last two games to go through.
Also in Group H, Juventus confirmed their place in the knockout stages with an emphatic 4-2 win over Zenit St. Petersburg.
Two goals from Paulo Dybala and strikes from Federico Chiesa and Alvaro Morata were enough for the Old Lady, despite a Leonardo Bonucci own goal and a late consolation from Sardar Azmoun.
Elsewhere, Bayern Munich confirmed their place in the round of 16 after beating Benfica 5-2 in Group E.
Robert Lewandoski scored a hat-trick along with goals from Serge Gnabry and Leroy Sane as Julian Nagelsmann’s side made it four wins from four games.
Barcelona also got back to winning ways in their match, beating Dynamo Kyiv 1-0 thanks to an Ansu Fati goal.
The youngster paid tribute to Sergio Aguero with his celebration, who was recently diagnosed with a heart issue.
In Group D, Real Madrid beat Shakhtar Donetsk 2-1 to go top of the table, scoring their 1000th Champions League goal in the process.
Karim Benzema netted twice for the 13-time champions, as they put their poor start to the group behind them.
Sheriff Tiraspol were well beaten by Inter Milan in the other Group D fixture, losing 3-1 after strikes from Marcelo Brozovic, Milan Skriniar and Alexis Sanchez.
Ajax maintain their 100% record
Ajax maintained their 100% record to qualify for the round of 16, beating Borussia Dortmund 3-1 in Group C.
The competition’s second top scorer Sebastien Haller was on target again to score his seventh of the tournament, alongside goals from Dusan Tadic and Davy Klaassen.
Sporting Lisbon thrashed Besiktas 4-0 in the other game in that group, with goals coming twice from Pedro Goncalves and then from Paulinho and Pablo Sarabia.
Finally, RB Salzburg squandered their chance to qualify for the knockout stages when they were beaten 2-1 by Wolfsberg.
Ridle Baku and Lukas Nmecha scored for the German club, either side of Maximilian Wober’s initial equaliser.
Lille beat Sevilla 2-1 in the other Group G thanks to goals from Jonathan David and Jonathan Ikone.