Arsenal (4-2-3-1)
David Raya (GK) The Spaniard made two important saves to stop Chelsea from going ahead. Leapt to deny them an equaliser in added time. 8/10
Jurriën Timber (RB) Benefited from not having to deal with a conventional winger. Still one of his side’s best players. A huge winner. 8
William Saliba (CB) Had not profited from Arsenal’s set pieces. He picked a good time to make it 1-0 with his first goal of the season. 7
Gabriel Magalhães (CB) Rose at the far post to set up Saliba. Had some awkward moments against João Pedro but kept Chelsea at bay. 7
Piero Hincapié (LB) A robust performance from the full-back, even though he mistimed his jump and headed into his own net for 1-1. 7
Martín Zubimendi (CM) The Spaniard’s energy levels have dipped recently. Almost followed up his mistake against Manchester United with another blunder. Not fluent. 6
Declan Rice (CM) Weary in and out of possession. There was too much space for Chelsea at times. Tired after crossing for the winner. 6
Bukayo Saka (RW) The winger was ineffective in open play for much of the contest. But he swung in the corner for Arsenal’s first goal. 6
Eberechi Eze (AM) Could not build on his double against Tottenham. Careless in possession and seemed to lack focus. Martin Ødegaard was missed. 5
Leandro Trossard (LW) Offered his usual scurrying on the left but failed to find the final ball before going off in the second half. 6
Viktor Gyökeres (CF) The striker worked hard but produced a blunt performance. He ran the channels but he lacked quality in dangerous positions. 5
Substitutes: Gabriel Martinelli (for Trossard, 56) 6; Kai Havertz (for Gyökeres, 76) 6; Christian Nørgaard (for Rice, 76) 6.
Chelsea (4-2-3-1)
Robert Sánchez (GK) An accident waiting to happen with the ball at his feet. Flapped in hapless fashion for Arsenal’s winner, claiming a nonexistent foul. 4
Reece James (RB) Bullied by Gabriel for the opening goal but recovered to make the equaliser. His crosses and set-piece deliveries caused problems. Defended well. 7
Trevoh Chalobah (CB) Had to be alert to some powerful runs from Gyökeres but did not allow the forward to get past him. 6
Mamadou Sarr (CB) The young centre-back made a nervy start on his full league debut but he eased into the game and kept Gyökeres quiet. 6
Jorrel Hato (LB) The Dutchman toiled against West Ham in January. This was better. Hato was rarely beaten by Saka. Tried to overlap. 7
Andrey Santos (CM) The young Brazilian has made swift progress under Liam Rosenior. Played his part in denying Arsenal room to create. 6
Moisés Caicedo (CM) Acquitted himself well in his battle with Rice. Took control at the start of the second half and whistled a drive over at 2-1. 7
Pedro Neto (RW) Unable to make an impact against Hincapié and left his team up against it with a silly red card. 4
Enzo Fernández (AM) Played in an advanced role and his influence grew after half-time. Tested Raya from 20 yards. Booked for dissent. 6
Cole Palmer (LW) Drifted in from the left to elude his markers but he could not pick the right pass. Still not 100% fit. 6
João Pedro (CF) A handful. The Brazilian enjoyed his tussle with Gabriel and Saliba but was disappointed not to convert a free header. 7
Substitutes: Roméo Lavia (for Santos, 75) 6; Malo Gusto (for Hato, 75) 6; Alejandro Garnacho (for Palmer, 86) 6; Liam Delap (for Fernández, 86) 5; Tosin Adarabioyo (for Sarr) N/A.