Kevin De Bruyne, Jack Grealish and Erling Haaland all scored to put Manchester City top of the Premier League with a vital 3-1 victory against title rivals Arsenal at the Emirates Stadium.

Arsenal headed into Wednesday's top-two clash with a three-point lead, but De Bruyne ruthlessly punished Takehiro Tomiyasu's error for the opener after 24 minutes.

Bukayo Saka's penalty looked to have maintained Arsenal's advantage at the summit, only for Grealish to strike in the 72nd minute before Haaland added a third to make it seven straight away victories for City against the Gunners.

Arsenal drop points for a third game in a row, though they still hold a game in hand over City as they look to win their first title since the 2003-04 'Invincibles' campaign.

Eddie Nketiah missed a golden early opportunity when he headed Oleksandr Zinchenko's pinpoint cross wide, and Arsenal were made to pay moments later, De Bruyne latching onto Tomiyasu's shocking backpass before lofting first-time into the net.

After Tomiyasu skied a decent chance to atone for his mistake by volleying over, the Gunners were awarded a penalty when Nketiah was wiped out by Ederson, who avoided a second yellow having been previously booked for time-wasting.

Saka stepped up, and coolly stroked into the bottom-left corner to restore parity heading into the break, though City did hit the bar in added-time when Rodri's header deflected off Nathan Ake and onto the woodwork.

The hosts received a huge let-off after the interval when a penalty was awarded for Gabriel hauling down Haaland, with a VAR review adjudging the City striker to have been offside before the foul had taken place.

But Grealish, having been fed by Ilkay Gundogan, excellently buried a low effort into the bottom corner to restore City's advantage, before Haaland expertly drilled past Aaron Ramsdale having been teed up by De Bruyne eight minute from time to secure what could prove to be a vital triumph.