Ederson: Made some outstanding saves to keep City's clean sheet, including that effort from Alaba. 8
Walker: Kept Vinicius quiet all game with some world-class defensive play. 9
Stones: Quality in defence, quality when he pushed up alongside Rodri, quality when he pushed past to be a No.8. 9
Dias: Even when City were on top, he was speaking to teammates to make sure it stayed that way. Commanding. 8
Akanji: Nothing got past him and he continued his amazing season with the third goal. 8
Rodri: Bossed the midfield battle against Kroos and Modric as the Real plan to mark him out of the game didn't work. 8
Gundogan: Brilliantly busy while showing the deftness of touch in the final third that makes him so deadly. 8
De Bruyne: Ran himself into the ground and showed his supreme vision to set up the first. 8
Bernardo: Some rash decisions early on but two goals speak for themselves and he was everywhere. 9
Grealish: Outstanding. One of his best games in the shirt as he terrorised Carvajal and didn't put a foot wrong. 9
Haaland: Could have done better early on but otherwise denied by a phenomenal Courtois and still put a shift in. 7
Substitutes
Mahrez (for Gundogan, 79) Kept the ball
Foden (for De Bruyne, 84) Played in Alvarez
Alvarez (for Haaland, 89) Scored the fourth
Not used: Ortega, Carson, Laporte, Gomez, Lewis, Phillips, Palmer