Arsenal fell behind inside two minutes at the Emirates, but Kai Havertz levelled before Martin Odegaard put Mikel Arteta's side ahead after the break.
Arsenal made it three Premier League wins from three with a 2-1 victory over Chelsea at the Emirates.
They had to come from behind to do it.
Morgan Rogers put Chelsea ahead after only 77 seconds, before Kai Havertz equalised against his former club later in the first half. Martin Odegaard scored the winner five minutes after the restart.
Mikel Arteta made one change from the side which started at Aston Villa.
Ezri Konsa replaced Cristhian Mosquera and made his first Arsenal start, with the defender having come off late at Villa Park. Bruno Guimaraes was fit enough for the bench after taking a knock in that game.
Myles Lewis-Skelly therefore stayed in midfield alongside Declan Rice and Odegaard.
There was no change to the front three. Christos Tzolis started again on the left, Bukayo Saka was on the right and Havertz kept his place through the middle ahead of Viktor Gyokeres.
Chelsea were without Moises Caicedo after he failed to make Xabi Alonso's squad.
It took them just over a minute to go in front anyway. Arsenal did not deal with Reece James' free-kick and Rogers was first to the loose ball outside the area, sending his volley beyond David Raya and into the bottom corner.
It was the first Premier League goal Arsenal had conceded this season, with only the second shot on target they have faced across their first three matches.
Shortly after, a moment involving Gabriel caught the Emiliano Martinez in the face with a raised boot while going for a loose ball. A foul was given, but there was no card and no intervention from VAR.
The Gunners thought they had levelled soon afterwards.
Rice's free-kick caused problems, Gabriel had an effort saved and Konsa hit the post before Riccardo Calafiori put away the rebound. VAR overturning due to Konsa being offside.
Saka later forced Martinez into a save from a tight angle, while Tzolis found Havertz from the left only for Wesley Fofana to block his effort.
Havertz did not need many more chances.Rice found him on the right and he carried the ball inside before beating Martinez low at the near post.
The former Chelsea forward chose not to celebrate.
Rogers had another effort at the opposite end and Odegaard saw one blocked before the break, but neither side found a second.
Arteta made no changes at half-time and five minutes later, Arsenal were ahead.
Tzolis played the ball into Havertz near the edge of the box. Havertz let it run across him and Odegaard had continued his run beyond, arriving in space and finishing past Martinez.
It was a much better start to the half than the one Arsenal had managed 45 minutes earlier.
Chelsea still had chances.
Malo Gusto put one over the bar after being found by Pedro Neto and Cole Palmer got into the area later on without finding a finish to trouble Raya.
Arsenal had chances of their own to make the final part of the game easier.
Havertz helped send Saka through and Martinez got across to push his effort away.
Arteta turned to his bench as the half went on.
Piero Hincapie and Martin Zubimendi replaced Calafiori and Lewis-Skelly, while Gyokeres and Mikel Merino were also given minutes later in the game.
Chelsea were still looking for a way back into it.
Raya was needed again towards the end, providing a stunning save to prevent Estevao as Alonso's side pushed more players forward for an equaliser.
There was no second Chelsea goal.
Arsenal saw out the final minutes and took another three points, having recovered from the earliest setback they have faced so far this season. Odegaard's was enough to win it.