Erling Haaland slid home Elliot Anderson's cross on 77 minutes to settle a five-goal thriller in Leipzig, The Guardian reported. It was his only real chance of the night. Rayan Cherki later hit the post as City held on.
City went ahead in the first half. Cherki found Nico O'Reilly with a diagonal ball. O'Reilly's quick cross forced Castello Lukeba to turn it into his own net off his left knee. Ridle Baku levelled after the break with a shot from a tight angle. Gianluigi Donnarumma let it in between himself and his left post. Enzo Fernández headed City back in front from Iliman Ndiaye's cross. Antonio Nusa equalised again from the left before Haaland struck.
Donnarumma's mistake was the latest in a series, according to The Guardian. He was also at fault for Nicolas Jackson's winner in the recent defeat at Aston Villa. He was blamed for two goals in last month's loss to Paris Saint-Germain too. Manager Enzo Maresca said the error was "not a concern but it's a mistake". He added that the Italian knew he was not good on the first goal. Maresca said he would look at the goalkeeping situation during the international break.
Maresca called both Leipzig goals "quite silly goals we can avoid". The Guardian said the manager still needs to fix a leaky defence and get more control from his midfield. Phil Foden twice lost the ball in dangerous areas, and Haaland again got little service.
Maresca made four changes from Saturday's defeat to Brighton. He dropped captain Rúben Dias, preferring the pace of Abdukodir Khusanov at centre-back. Haaland wore the armband. The Norwegian, City's 13-goal man, said he was not sure how many touches he had. The most important thing, he said, was helping the team win.
Leipzig had won only once in six previous meetings with City, all in the Champions League. City now travel to Nottingham Forest in the Premier League on Saturday.