Defending champions Madrid were humbled 3-1 at home by AC Milan on Tuesday (Wednesday AEDT), while Erling Haaland missed a penalty and City squandered a fourth-minute lead as they lost 4-1 at Sporting Lisbon, whose coach will soon take charge of their cross-town rivals.
It was a much better evening for Liverpool, as Luis Diaz scored a hat-trick and Cody Gakpo grabbed another goal in a 4-0 win over German champions Bayer Leverkusen at Anfield that marred Xabi Alonso's return to his old home.
Liverpool's Luis Diaz (centre) scored a hat-trick as his side beat Bayer Leverkusen 4-0 at Anfield. (AP PHOTO)
The Leverkusen coach was given a warm welcome on his return to the club where he became a fan favourite as a player over five seasons between 2004 and 2009. Alonso won the Champions League with Liverpool in 2005.
Liverpool moved top of the league-phase table with four wins from four games, followed by Sporting and Monaco, both on 10 points after three wins and a draw.
Under the new 36-team format introduced by UEFA this season, the top eight teams advance directly to the next round, and those from ninth to 24th enter playoffs to reach it, while the bottom 12 are eliminated.
Before their game on Tuesday, Sporting fans displayed a huge "tifo" thanking Ruben Amorim in his last home game before he takes over Manchester United.
Phil Foden got City off to a flying start in the fourth minute, only the second goal Sporting have conceded in four games of the competition.
But Swedish forward Viktor Gyokeres scored a hat-trick as Sporting came roaring back.
Gyokeres equalised in the 38th minute after a perfect through-ball from Geovany Quenda, before Maximiliano Araujo made it 2-1 right after the break.
Gyokeres made it 3-1 in the 49th minute from the penalty spot after Josko Gvardiol was penalised for a shove on Francisco Trincao in the area.
Haaland's penalty attempt hit the crossbar, before Gyokeres showed the Norwegian how it's done with another spot kick at the other end to complete the scoring.
Manchester City's Erling Haaland missed a penalty in his side's loss against Sporting. (AP PHOTO)
It is the first time since 2018 that City have lost three straight games, coming off a defeat to Tottenham in the English League Cup and a loss to Bournemouth in the Premier League.
"In my seven and a half years at the club, I don't remember losing three games in a row," City midfielder Bernardo Silva said.
In Madrid, Christian Pulisic sent in a corner for Malick Thiaw to head Milan into a 12th-minute lead, ensuring Madrid trailed in a third straight game in the Champions League this season.
Vinicius Junior equalised from the penalty spot in the 23rd after he'd been tripped, but Alvaro Morata pounced on the rebound after Andriy Lunin saved Rafael Leao's shot to restore the visitors' lead against his former club.
Morata had already been given a hostile reception from the home fans, who evidently remember the goal he scored to take Juventus through to the 2015 final at their team's expense.
AC Milan's Alvaro Morata (right) scored in the 3-1 win against his former side Real Madrid. (AP PHOTO)
Tijjani Reijnders scored Milan's third goal as the home fans made their frustrations known at Santiago Bernabeu Stadium.
In other results, German forward Nicolas Kuhn scored twice as Celtic defeated Leipzig 3-1 at home, and Juventus drew 1-1 at Lille.
Lille midfielder Edon Zhegrova eluded two defenders before playing a perfect pass for Jonathan David, who fired inside the far post, but Dusan Vlahovic equalised with a penalty for the Italian club.
Donyell Malen scored late for Borussia Dortmund to beat Sturm Graz 1-0 at home, and Thilo Kehrer did likewise for Monaco to win 1-0 at Bologna.
American midfielder Malik Tillman scored one goal and set up another as PSV Eindhoven beat Spanish team Girona 4-0.
Dinamo Zagreb dealt Slovan Bratislava their fourth straight defeat in the competition as the visitors came from behind to win 4-1 in Bratislava.