Erling Haaland 5: Despite City having 74 per cent possession in opening 45 minutes, Haaland had no opportunities to score and little service. Too quick for Gvardiol in 68th minute but scuffed his shot wide with just keeper to beat. Looked a frustrated figure up front. EPA
RB LEIPZIG RATINGS: Janis Blaswich 8: No serious saves to make in first-half despite City’s dominance but no chance with Mahrez’s clinical finish. Excellent one-handed save from Gundogan’s low shot in 73rd minute. EPA
Lukas Klostermann 5: Struggled to deal with Grealish’s direct running and cuts inside from left. Hooked at break. AFP
Willi Orban 8: Leipzig’s captain was impressive at back and combined well with defensive partner Gvardiol to keep Haaland quiet. PA
Josko Gvardiol 7: The Croatian is one of the most in-demand defenders in Europe but was fooled by Gundogan dummy ahead of Mahrez’s goal. Fine thumping header to make it 1-1 in second half. AP
Marcel Halstenberg 7: Couldn’t handle some of Walker’s attacking runs in first-half. Good cross to pick out Henrichs just after half-time that substitute headed over, produced even better one to set up Gvardiol to level the scores. EPA
Konrad Laimer 6: Chasing City shadows as the English champions passed rings around their German opponents in first-half. Better after break when Leipzig came out with far more positive attitude. AFP
Xaver Schlager 5: Badly at fault for City’s opener when he gave away possession leading to Mahrez scoring. Blocked Mahrez shot just after break that looked set to make it 2-0. EPA
Dominik Szoboszlai 6: Hungarian winger, and former Salzburg teammate of Erling Haaland, came to life in 68th minute with stinging shot from distance that Ederson turned behind for corner. Getty
Emil Forsberg 6: Like rest of Leipzig’s attackers, offered no threat at all until second half when Leipzig finally decided to make a game of it. Made way for dangerman Nkunku. EPA
Timo Werner 6: Former Chelsea attacker had Leipzig’s first attempt on goal in first-half injury-time with shot that was easily saved and Leipzig would have wanted far more threat in opposition penalty area from the German international. EPA
Andre Silva 6: Portuguese attacker was served less than scraps by his teammates in opening 45. Finally made an impact when he skinned Akanji on the hour but saw then his shot from tight angle saved. AP
SUBS: Benjamin Henrichs (On for Klostermann 46’) 7: Offered some attacking urgency badly missing in opening half. Missed two chances soon after coming on, though – one a more difficult header over bar, the other a side-foot finish dragged wide that he should have scored. Getty
Christopher Nkunku (On for Fosberg 66’) 5: Scored hat-trick against City last season but is only just coming back from injury. Looked rusty in what was only his second appearance since November. AFP
Yussuf Poulsen (On for Silva 82’) N/A. Getty
Amadou Haidara (On for Schlager 82’) N/A.
Raum (On for Halstenberg 89') N/A.
MAN CITY RATINGS: Ederson 7: A complete spectator until brink of half-time when he comfortably saved a Werner strike. Good save from Silva in 62nd minute and Szoboszlai soon after. Left in no man’s land by fine cross for Leipzig goal. Getty
Kyle Walker 7: First Champions League appearance of season for England defender who piled forward as much as possible from first whistle. Crucial interception to stop pass putting Silva through on goal in second half when his attacking forays were more restricted. AP
Manuel Akanji 7: Walk in park for Swiss defender until he was turned inside out by Silva just after hour mark and needed Ederson to come to his rescue. AFP
Ruben Dias 7: Had game’s first effort on target but could only head Mahrez corner straight at keeper. Out-muscled and out-jumped by Gvardiol for Leipzig goal. PA
Nathan Ake 7: Continuing at left-back for City and had been under absolutely no pressure until introduction of Henrichs made his life a bit more difficult. EPA
Ilkay Gundogan 8: German international back on home soil and played important role in opening goal when he let Grealish pass go through his legs to put Mahrez through. Thought he had put City back in front but denied by brilliant save. AP
Rodri 6: Had three scoring opportunities in first half with one shot and two headers but failed to get any of them on target. AFP
Bernardo Silva 7: Made one mazy run into Leipzig box in first half, was knocked to floor but able to get up still in possession and set-up chance for Grealish. Buzzed around, tried to make things happen but without much joy in terms of defence-splitting passes. Reuters
Riyad Mahrez 7: Clean as a whistle first-time finish to put City in front after 27 minutes. Almost made it two just after break but had goal-bound shot blocked. Getty
Jack Grealish 7: Fine interception and pass to set-up Mahrez for opener. Could have made it 2-0 himself when he cut in from left but sent shot over bar. A threat but final ball and decision-making not always the best. AP
Erling Haaland 5: Despite City having 74 per cent possession in opening 45 minutes, Haaland had no opportunities to score and little service. Too quick for Gvardiol in 68th minute but scuffed his shot wide with just keeper to beat. Looked a frustrated figure up front. EPA
RB LEIPZIG RATINGS: Janis Blaswich 8: No serious saves to make in first-half despite City’s dominance but no chance with Mahrez’s clinical finish. Excellent one-handed save from Gundogan’s low shot in 73rd minute. EPA
Lukas Klostermann 5: Struggled to deal with Grealish’s direct running and cuts inside from left. Hooked at break. AFP
Willi Orban 8: Leipzig’s captain was impressive at back and combined well with defensive partner Gvardiol to keep Haaland quiet. PA
Josko Gvardiol 7: The Croatian is one of the most in-demand defenders in Europe but was fooled by Gundogan dummy ahead of Mahrez’s goal. Fine thumping header to make it 1-1 in second half. AP
Marcel Halstenberg 7: Couldn’t handle some of Walker’s attacking runs in first-half. Good cross to pick out Henrichs just after half-time that substitute headed over, produced even better one to set up Gvardiol to level the scores. EPA
Konrad Laimer 6: Chasing City shadows as the English champions passed rings around their German opponents in first-half. Better after break when Leipzig came out with far more positive attitude. AFP
Xaver Schlager 5: Badly at fault for City’s opener when he gave away possession leading to Mahrez scoring. Blocked Mahrez shot just after break that looked set to make it 2-0. EPA
Dominik Szoboszlai 6: Hungarian winger, and former Salzburg teammate of Erling Haaland, came to life in 68th minute with stinging shot from distance that Ederson turned behind for corner. Getty
Emil Forsberg 6: Like rest of Leipzig’s attackers, offered no threat at all until second half when Leipzig finally decided to make a game of it. Made way for dangerman Nkunku. EPA
Timo Werner 6: Former Chelsea attacker had Leipzig’s first attempt on goal in first-half injury-time with shot that was easily saved and Leipzig would have wanted far more threat in opposition penalty area from the German international. EPA
Andre Silva 6: Portuguese attacker was served less than scraps by his teammates in opening 45. Finally made an impact when he skinned Akanji on the hour but saw then his shot from tight angle saved. AP
SUBS: Benjamin Henrichs (On for Klostermann 46’) 7: Offered some attacking urgency badly missing in opening half. Missed two chances soon after coming on, though – one a more difficult header over bar, the other a side-foot finish dragged wide that he should have scored. Getty
Christopher Nkunku (On for Fosberg 66’) 5: Scored hat-trick against City last season but is only just coming back from injury. Looked rusty in what was only his second appearance since November. AFP
Yussuf Poulsen (On for Silva 82’) N/A. Getty
Amadou Haidara (On for Schlager 82’) N/A.
Raum (On for Halstenberg 89') N/A.
MAN CITY RATINGS: Ederson 7: A complete spectator until brink of half-time when he comfortably saved a Werner strike. Good save from Silva in 62nd minute and Szoboszlai soon after. Left in no man’s land by fine cross for Leipzig goal. Getty
Kyle Walker 7: First Champions League appearance of season for England defender who piled forward as much as possible from first whistle. Crucial interception to stop pass putting Silva through on goal in second half when his attacking forays were more restricted. AP
Manuel Akanji 7: Walk in park for Swiss defender until he was turned inside out by Silva just after hour mark and needed Ederson to come to his rescue. AFP
Ruben Dias 7: Had game’s first effort on target but could only head Mahrez corner straight at keeper. Out-muscled and out-jumped by Gvardiol for Leipzig goal. PA
Nathan Ake 7: Continuing at left-back for City and had been under absolutely no pressure until introduction of Henrichs made his life a bit more difficult. EPA
Ilkay Gundogan 8: German international back on home soil and played important role in opening goal when he let Grealish pass go through his legs to put Mahrez through. Thought he had put City back in front but denied by brilliant save. AP
Rodri 6: Had three scoring opportunities in first half with one shot and two headers but failed to get any of them on target. AFP
Bernardo Silva 7: Made one mazy run into Leipzig box in first half, was knocked to floor but able to get up still in possession and set-up chance for Grealish. Buzzed around, tried to make things happen but without much joy in terms of defence-splitting passes. Reuters
Riyad Mahrez 7: Clean as a whistle first-time finish to put City in front after 27 minutes. Almost made it two just after break but had goal-bound shot blocked. Getty
Jack Grealish 7: Fine interception and pass to set-up Mahrez for opener. Could have made it 2-0 himself when he cut in from left but sent shot over bar. A threat but final ball and decision-making not always the best. AP
Erling Haaland 5: Despite City having 74 per cent possession in opening 45 minutes, Haaland had no opportunities to score and little service. Too quick for Gvardiol in 68th minute but scuffed his shot wide with just keeper to beat. Looked a frustrated figure up front. EPA