Shakhtar Donetsk delayed Barcelona’s hopes of reaching the Champions League knockout stages after claiming a shock 1-0 win in their Group H clash in Hamburg.
Danylo Sikan headed the only goal in the 40th minute from a cross by Giorgi Gocholeishvili, while Shakhtar had a second effort from 18-year-old Newerton ruled out for offside.
The defeat ended Barcelona’s 100 per cent start to the group and enabled Porto to pull level on nine points at the top after they beat 10-man Royal Antwerp 2-0.
Evanilson’s early penalty and a late strike from Pepe sealed victory for the hosts and left the Belgians, who had Jurgen Ekkelencamp sent off in the 52nd minute, still hunting their first points.
Manchester City succeeded where Barca failed and duly booked their spot in the next stage after cruising to a 3-0 win over Young Boys at the Etihad Stadium.
Erling Haaland’s 23rd-minute penalty sent them on their way and superb strikes from Phil Foden and Haaland again sealed victory over the Swiss side, who had Sandro Lauper sent off early in the second half.
Also in Group G, goals from Xavi Simons and Lois Openda proved enough to give RB Leipzig a 2-1 win at Red Star Belgrade.
Atletico Madrid served up another Champions League nightmare for Celtic with both Antoine Griezmann and Alvaro Morata bagging braces in a 6-0 win at the Metropolitano.
Celtic were left incensed by the sending-off of Daizen Maeda after just 23 minutes following a VAR review of his challenge on Mario Hermoso.
Atletico’s win moved them top of Group E after previous leaders Feyenoord fell 1-0 at Lazio, for whom Ciro Immobile scored the only goal of the game in first half stoppage time.
Goals from Niclas Fullkrug and Julian Brandt proved enough for Borussia Dortmund to sink Newcastle 2-0 in Germany and move to the top of Group F.
Fullkrug scored in the opening period and Brandt’s effort 11 minutes from time dealt a potentially fatal blow to the Magpies’ hopes of progression to the knockout stages.
Paris St Germain lost top spot after a 2-1 defeat at AC Milan despite former Inter defender Milan Skriniar firing them in front after just nine minutes.
Rafael Leao equalised for Milan within three minutes and Olivier Giroud hit what turned out to be the winner five minutes into the second half.
Read MoreDaizen Maeda sent off as sorry Celtic are hit for six by Atletico Madrid
Eddie Howe knows Newcastle need two wins to keep Champions League hopes alive
Jacob Neestrup: Parken atmosphere is 100 times more intense than Old Trafford
FA asks Mikel Arteta and Arsenal for observations after referee comments
Tragedy chanting causes ‘unbearable pain’ and must stop – Margaret Aspinall
‘Just ridiculous’ – A closer look at Glenn Maxwell’s remarkable double century