Nicolas Otamendi (74’) – 6. Was introduced just before Chelsea scored the match-winning penalty. The Argentine did nothing wrong in the time he was on the pitch. Getty
CHELSEA RATINGS: Kepa Arrizabalaga – 6. A performance that sums up much of his time at Chelsea. A botched clearance almost proved costly, but he produced a great save to deny Fernandinho’s header. Couldn’t do much about Kevin De Bruyne’s free kick. AP
Cesar Azpilicueta – 7. Blues captain had his hands full but dealt with City’s left-wing attack well. Typically committed and assured performance from the Spaniard. PA
Antonio Rudiger – 8. Chelsea’s best centre-back needed to be his side’s rock in the face of City pressure and the German was exactly that. Solid in the air and marshalled the line. AP
Andreas Christensen – 8. Since reclaiming his place in the side, Christensen has shown his manager why he should be Rudiger’s first-choice partner. This was another fine display from the Dane, who could have got himself on the scoresheet. EPA
Marcos Alonso – 6. Has always looked susceptible when playing in a back four and was given arguably the toughest assignment of the night trying to contain the in-form Riyad Mahrez. First-half booking hardly helped matters but the Spaniard stuck to his task. AFP
N’Golo Kante – 7. Utilised in his favoured defensive midfield role, Kante provided structure to his team and support for the defence. However, the Frenchman’s passing – which has proven to be a vastly underrated component of his game – was lacking at times as City dominated possession. Reuters
Ross Barkley – 6. Recalled to the starting XI, Barkley could not quite get a foothold in a game in which City controlled the ball for two-thirds. The Englishman did plenty of running and twice got in behind the City line but struggled to impose himself. AFP
Mason Mount – 6. After a man of the match performance against Aston Villa, Chelsea’s lively midfielder was more subdued. Required to do more defensive work than normal, Mount still had a one-on-one chance he sent wide. AFP
Willian – 7. Busy all match, providing an outlet all across Chelsea’s attacking line. Did his defensive duties well as expected and was responsible for winning and converting the match-winning penalty. He'll be missed next season. Reuters
Christian Pulisic – 8. His goalscoring appearance off the bench against Villa earned the American a starting place and he didn’t let it go to waste. Pulisic capitalised on a City error to score his side’s opening goal in style and could have had a second. Man of the match. Reuters
Olivier Giroud – 6. In a game where his team rarely had the ball, the French target man had few opportunities. Held the ball up well when it did come his way. AP
SUBS: Tammy Abraham (62’) – 7. Provided more pace and athleticism when he replaced Giroud for the final half hour. Involved in the lead-up to the penalty. EPA
Mateo Kovacic (73’) – 6. Brought on to help bring some control to Chelsea’s midfield. Did his job well in the face of mounting City pressure. Getty
Pedro (90+1) – 5. Had little time to impact the game as he came on late to disrupt City’s rhythm. PA
Billy Gilmour (90+1) – 5. Introduced at the same time as Pedro, so had no time to effect the game. Getty
MANCHESTER CITY RATINGS: Ederson – 7. Could do nothing about either goal but produced good saves to twice deny Abraham and Christensen. AP
Kyle Walker – 7. Untroubled all game and pulled off a goalline clearance to deny Pulisic a second. Offered an attacking outlet down the right. AFP
Aymeric Laporte – 7. Another solid display from City’s best centre-back in another reminder of just how badly they’ve missed him this season. AFP
Fernandinho – 4. Actually played quite well and could have scored the opener were it not for Kepa’s acrobatic save. But his red card for a handball on the line turned the match. AP
Benjamin Mendy – 4. After the opening exchanges it looked like Mendy could be the standout player on the pitch. Instead, the French full-back’s performance nosedived and he was chiefly responsible for Pulisic’s goal. AFP
Ilkay Gundogan – 5. Won the ball back more than any other City player but was also involved in the mess that led to Pulisic’s opener. AP
Rodri – 6. Central to City controlling the midfield in the first half but was subbed off early in the second half as Pep Guardiola went more attacking. Reuters
Kevin De Bruyne – 8. City’s best player was once again their standout player on the day. Scored a wonderful free-kick. Getty
Riyad Mahrez – 7. Looked like he could have terrorised Chelsea all night, and in particular Alonso. Won the free-kick for De Bruyne to convert and played in Raheem Sterling, only for the Englishman to hit the post. However, couldn’t find his goalscoring boots. AP
Raheem Sterling – 6. Had two great chances to give City the lead during the spell in which the visitors dominated but couldn’t convert either. AP
Bernardo Silva – 5. Deployed in an unfamiliar central attacking role, the Portuguese midfielder showed glimpses of his class but made way in the 55th minute. AFP
SUBS: David Silva (55’) – 7. The Spanish midfielder was part of the double change as City went in search of the win and brought his usual class to proceedings. AFP
Gabriel Jesus (55’) – 5.. As City’s only fit senior striker, Guardiola looks to be protecting the Brazilian for more important fixtures, namely the FA Cup and Champions League. After coming on, Jesus struggled to get a sight on goal. AFP
Oleksandr Zinchenko (59’) – 6. Proved an upgrade for Mendy on the night, offering City width and an extra attacking outlet on the left. Getty
Nicolas Otamendi (74’) – 6. Was introduced just before Chelsea scored the match-winning penalty. The Argentine did nothing wrong in the time he was on the pitch. Getty
CHELSEA RATINGS: Kepa Arrizabalaga – 6. A performance that sums up much of his time at Chelsea. A botched clearance almost proved costly, but he produced a great save to deny Fernandinho’s header. Couldn’t do much about Kevin De Bruyne’s free kick. AP
Cesar Azpilicueta – 7. Blues captain had his hands full but dealt with City’s left-wing attack well. Typically committed and assured performance from the Spaniard. PA
Antonio Rudiger – 8. Chelsea’s best centre-back needed to be his side’s rock in the face of City pressure and the German was exactly that. Solid in the air and marshalled the line. AP
Andreas Christensen – 8. Since reclaiming his place in the side, Christensen has shown his manager why he should be Rudiger’s first-choice partner. This was another fine display from the Dane, who could have got himself on the scoresheet. EPA
Marcos Alonso – 6. Has always looked susceptible when playing in a back four and was given arguably the toughest assignment of the night trying to contain the in-form Riyad Mahrez. First-half booking hardly helped matters but the Spaniard stuck to his task. AFP
N’Golo Kante – 7. Utilised in his favoured defensive midfield role, Kante provided structure to his team and support for the defence. However, the Frenchman’s passing – which has proven to be a vastly underrated component of his game – was lacking at times as City dominated possession. Reuters
Ross Barkley – 6. Recalled to the starting XI, Barkley could not quite get a foothold in a game in which City controlled the ball for two-thirds. The Englishman did plenty of running and twice got in behind the City line but struggled to impose himself. AFP
Mason Mount – 6. After a man of the match performance against Aston Villa, Chelsea’s lively midfielder was more subdued. Required to do more defensive work than normal, Mount still had a one-on-one chance he sent wide. AFP
Willian – 7. Busy all match, providing an outlet all across Chelsea’s attacking line. Did his defensive duties well as expected and was responsible for winning and converting the match-winning penalty. He'll be missed next season. Reuters
Christian Pulisic – 8. His goalscoring appearance off the bench against Villa earned the American a starting place and he didn’t let it go to waste. Pulisic capitalised on a City error to score his side’s opening goal in style and could have had a second. Man of the match. Reuters
Olivier Giroud – 6. In a game where his team rarely had the ball, the French target man had few opportunities. Held the ball up well when it did come his way. AP
SUBS: Tammy Abraham (62’) – 7. Provided more pace and athleticism when he replaced Giroud for the final half hour. Involved in the lead-up to the penalty. EPA
Mateo Kovacic (73’) – 6. Brought on to help bring some control to Chelsea’s midfield. Did his job well in the face of mounting City pressure. Getty
Pedro (90+1) – 5. Had little time to impact the game as he came on late to disrupt City’s rhythm. PA
Billy Gilmour (90+1) – 5. Introduced at the same time as Pedro, so had no time to effect the game. Getty
MANCHESTER CITY RATINGS: Ederson – 7. Could do nothing about either goal but produced good saves to twice deny Abraham and Christensen. AP
Kyle Walker – 7. Untroubled all game and pulled off a goalline clearance to deny Pulisic a second. Offered an attacking outlet down the right. AFP
Aymeric Laporte – 7. Another solid display from City’s best centre-back in another reminder of just how badly they’ve missed him this season. AFP
Fernandinho – 4. Actually played quite well and could have scored the opener were it not for Kepa’s acrobatic save. But his red card for a handball on the line turned the match. AP
Benjamin Mendy – 4. After the opening exchanges it looked like Mendy could be the standout player on the pitch. Instead, the French full-back’s performance nosedived and he was chiefly responsible for Pulisic’s goal. AFP
Ilkay Gundogan – 5. Won the ball back more than any other City player but was also involved in the mess that led to Pulisic’s opener. AP
Rodri – 6. Central to City controlling the midfield in the first half but was subbed off early in the second half as Pep Guardiola went more attacking. Reuters
Kevin De Bruyne – 8. City’s best player was once again their standout player on the day. Scored a wonderful free-kick. Getty
Riyad Mahrez – 7. Looked like he could have terrorised Chelsea all night, and in particular Alonso. Won the free-kick for De Bruyne to convert and played in Raheem Sterling, only for the Englishman to hit the post. However, couldn’t find his goalscoring boots. AP
Raheem Sterling – 6. Had two great chances to give City the lead during the spell in which the visitors dominated but couldn’t convert either. AP
Bernardo Silva – 5. Deployed in an unfamiliar central attacking role, the Portuguese midfielder showed glimpses of his class but made way in the 55th minute. AFP
SUBS: David Silva (55’) – 7. The Spanish midfielder was part of the double change as City went in search of the win and brought his usual class to proceedings. AFP
Gabriel Jesus (55’) – 5.. As City’s only fit senior striker, Guardiola looks to be protecting the Brazilian for more important fixtures, namely the FA Cup and Champions League. After coming on, Jesus struggled to get a sight on goal. AFP
Oleksandr Zinchenko (59’) – 6. Proved an upgrade for Mendy on the night, offering City width and an extra attacking outlet on the left. Getty
Nicolas Otamendi (74’) – 6. Was introduced just before Chelsea scored the match-winning penalty. The Argentine did nothing wrong in the time he was on the pitch. Getty