Ederson: Nearly cost City the advantage they had built by recklessly coming out of his area. 5
Stones: Moved into midfield with ease and never looked under pressure. 7
Akanji: Infuriated Guardiola by losing the ball in his own half but recovered well and was a threat from corners. 7
Dias: Always played the right ball, however much pressure he was under. 7
Ake: Faultless in defence and another underrated effort going forward, with some terrific play on the flank. 8
Rodri: His high standard continued, apart from one loose ball in the box. 8
De Bruyne: Vintage performance that was a joy to watch, complete with a yellow for dissent. 9
Read more: Haaland repeats Messi feat to start City party vs Leipzig
Gundogan: Missed a few good chances but took his goal well and kept the team driving forward. 8
Bernardo: Did his usual trick of popping up everywhere and never losing the ball. In terrific form. 8
Grealish: Will be disappointed not to end with a goal or assist but carries the ball so well. 8
Haaland: A goal every 12 minutes, making a difficult game look stupidly easy. 10
Substitutes
Foden (for Grealish, 55): Bright, looking to get in on the action. 7
Mahrez (for Gundogan, 55) Dribbled his way into the box whenever he could. 7
Alvarez (for Haaland, 64) Took time to get up to speed 6
Gomez (for Stones, 64) Comfortable in possession. 6
Phillips (for Rodri, 64) Finding his feet. 6
Not used: Ortega, Carson, Walker, Laporte, Lewis, Perrone, Palmer
Read more: