Reigning champions Manchester City moved ahead of Arsenal at the top of the Premier League as Erling Haaland wrapped up a fine win at the Emirates Stadium.
The Gunners have led the way since the third week of the season but were knocked off the summit as City secured a 3-1 victory in an enthralling encounter.
Kevin De Bruyne had put City in front before Bukayo Saka levelled for Arsenal from the penalty spot – but the visitors would strike twice after the break as Jack Grealish and Haaland, an injury doubt ahead of the game, secured a vital three points.
Arsenal have now lost three of their last four in all competitions as their title tilt has taken a wobble, although they only sit second by virtue of a worse goal difference and do have a game in hand on Pep Guardiola’s men.
The atmosphere inside the Emirates Stadium was crackling even before kick-off, the gravity of the occasion lost on no one as City aimed to entirely erode the eight-point lead Arsenal had once held.
Arsenal started well, Eddie Nketiah seeing a shot blocked after Granit Xhaka – without his usual midfield partner Thomas Partey due to a muscular injury – intercepted a pass to set the forward in behind.
Haaland had his first sniff of goal after 15 minutes, getting in behind the recalled Takehiro Tomiyasu but not managing to get a shot on target from an acute angle.
City would break the deadlock soon after, a combination of poor defending and world-class finishing putting the visitors ahead.
A long ball over the top was nodded towards Tomiyasu and he looked to play a pass inside to goalkeeper Aaron Ramsdale but he did not put sufficient power on his effort.
It was intercepted by De Bruyne, whose first-time shot was perfectly weighted, lifted over Ramsdale and just inside the post.
The City goalkeeper was, therefore, arguably lucky to stay on the pitch as referee Anthony Taylor pointed to the penalty spot after he clattered into Nketiah.
Saka was on hand to coolly slot home the spot-kick and deservedly draw Arsenal level but they had the crossbar to thank for going in even at the break, Nathan Ake getting the final touch with Ramsdale beaten.
The second-half started where the first had ended, both sides full-blooded as Mikel Arteta and De Bruyne were involved in a spat after the Arsenal boss nudged the ball away from the Belgian as he looked to retrieve it for a throw-in.
City were awarded a penalty of their own as Gabriel Magalhaes bundled Haaland over in the box as the pair tussled for the ball.
Guardiola turned to his bench, abandoning his surprise tactic of playing Bernardo Silva at left-back after the playmaker had been given a torrid evening by Saka.
Manuel Akanji was his replacement and the defender almost put City ahead only to see his effort cleared off the line by Jorginho, impressing on his full Arsenal debut.
For the first time, the home side were starting to look ragged as Zinchenko was caught in possession trying to play out – only Ramsdale’s reactions preventing Haaland scoring.
The sloppiness creeping in soon proved Arsenal’s undoing as a weak backpass from Gabriel led to Haaland crossing for Grealish to curl home and re-establish the lead.
The points were safe as Haaland turned home a De Bruyne cross with eight minutes remaining, City extending their winning run over Arsenal in the Premier League to 11 games and leaving Arteta now having to change the mindset of his players from hunted to hunters.