Manchester City player ratings vs Leipzig: Erling Haaland settles five-goal thriller as Elliot Anderson stars
Manchester City twice threw away the lead in Germany but still left with all three points, a result that lifts Enzo Maresca's side into the top eight of the Champions League table.
Maresca made four changes after the home defeat to Brighton, with Ruben Dias dropping to the bench and Erling Haaland wearing the armband. City had 65% of the ball, yet Leipzig had more shots, 14 to 12, with Antonio Nusa and David Raum causing problems down the left all night. Castello Lukeba gifted the visitors the lead on 37 minutes, turning Nico O'Reilly's cross into his own net. Ridle Baku levelled on 49 minutes, beating Gianluigi Donnarumma at his near post after Brajan Gruda had skipped past Elliot Anderson, and Enzo Fernandez headed in Iliman Ndiaye's cross on 58 minutes, only for Nusa to equalise again three minutes later from substitute Christopher Nkunku's clipped pass.
Haaland settled it on 78 minutes, sliding in Anderson's low cut-back for his 13th goal in nine games against Leipzig. City finished seventh on nine points, while Leipzig remain 29th with three.
Below, GOAL rates Manchester City's players from the Red Bull Arena...
Goalkeeper & Defence
Gianluigi Donnarumma (5/10): Produced a superb fingertip save to keep out Christoph Baumgartner's drive early in the second half, but was beaten at his near post by Baku moments later. Looked shaky throughout, fumbling Nusa's early drive over the bar, spilling a Baku shot after the break and misjudging the flight of a Raum free-kick that came back off the bar.
Matheus Nunes (6/10): Started at right-back and blocked a goalbound Raum shot early on, but Leipzig's left flank caused City constant problems while he was on. Replaced by Dias on 79 minutes.
Abdukodir Khusanov (7/10): City's most reliable defender on the night, hacking away a dangerous Raum delivery under pressure in the first half and staying clear of blame for both Leipzig goals. Picked up a yellow card for a cynical challenge deep into stoppage time.
Marc Guehi (6/10): Snuffed out Nusa on the edge of the box and cut out a pass meant for Romulo in the first half, but the back line was too often stretched as Leipzig created more chances than their possession suggested.
Nico O'Reilly (7/10): His cross from the left forced Lukeba's own goal, and his pace earned Baku a yellow card. Shortly after the opener, he mistimed a free header from eight yards that should have made it 2-0.
Midfield
Elliot Anderson (8/10): Was skipped past by Gruda in the build-up to Baku's equaliser, but made amends in style, bursting past two challenges into the box and squaring for Haaland's winner. Also won possession back well and fired over from 15 yards before being replaced by Ayyoub Bouaddi on 83 minutes.
Enzo Fernandez (8/10): Set up Cherki's early chance with a deft flick and blocked a Gruda effort before timing his run perfectly to head in Ndiaye's cross for 2-1. Made way for Mateo Kovacic on 83 minutes.
Rayan Cherki (7/10): City's most persistent attacking threat, dragging an early effort wide, forcing a save from Maarten Vandevoordt and crashing a powerful shot against the underside of the bar. Also ran 40 yards to set Haaland up for an effort that hit the post, though the flag was up.
Attack
Phil Foden (6/10): Curled a first-half effort just wide and swept the ball out to Ndiaye in the build-up to Fernandez's goal, but struggled to find space on the right. Replaced by Jeremy Doku on 64 minutes.
Iliman Ndiaye (8/10): A constant outlet on the left, whipping in the perfect cross for Fernandez's header and sliding Cherki in for an early second-half chance. Drew a booking for Raum before making way for Allan on 83 minutes.
Erling Haaland (8/10): The captain managed just three touches before the break and was denied by Vandevoordt from close range on 53 minutes, but was in the right place to slide home the winner. Also hit the post from an offside position and saw a late deflected effort clawed off the line.
Substitutes & Manager
Jeremy Doku (7/10): Gave City a different threat on the left, setting up Cherki's effort against the bar and delivering the cross that almost brought Haaland a second. Blazed over when clean through in stoppage time and was booked for kicking the ball away.
Ruben Dias (6/10): Brought on for the closing stages to help protect the lead as Leipzig pushed for a third equaliser.
Ayyoub Bouaddi, Mateo Kovacic, Allan (N/A): Late introductions to see out the win.
Enzo Maresca (7/10): His side were far too open at the back for long spells, but his four changes after the Brighton defeat and the introduction of Doku helped City find a way to win and move into the top eight.