Manchester City secured their 10th win in 11 Premier League games, extending their lead at the top of the table with a 3-1 victory over Arsenal at the Etihad Stadium.
Less than two minutes had been played when City put together their first lightning counter of the afternoon, and it almost brought a goal for club record scorer Sergio Aguero.
After an Alexis Sanchez cross had been cleared, Raheem Sterling raced into the Arsenal half and fed Kevin De Bruyne. He slipped a pass to Aguero, only for the striker to slice his effort wide.
But the Gunners hit back and, when Hector Bellerin crossed low towards Mesut Ozil, they forced a corner from which City eventually hacked clear.
Ozil fired a bobbling shot well wide from a Sanchez pass after the visitors had won possession in a dangerous position.
But City roared down to the other end and were within a whisker of taking the lead when Sterling just failed to touch in Leroy Sane's inviting low cross from the left.
With 18 minutes gone they were close again as Petr Cech denied De Bruyne from the edge of the box -- but within less than a minute De Bruyne struck, opening the scoring with a fierce angled shot into the corner.
The Belgium international threatened again when Sanchez lost possession but his pass towards Sane, in space on the left, was just cut out by Bellerin.
City should have doubled their lead after 36 minutes when, after another rapid break, Sterling produced a terrible final pass with the unmarked Sane waiting.
Boss Pep Guardiola was visibly frustrated and had further cause to feel that way when Kyle Walker's cross cannoned around the Arsenal area, with a touch off defender Laurent Koscielny being blocked by Cech.
His frustration was almost deepened when Arsenal came close to levelling in first-half stoppage time, Aaron Ramsey's low strike well saved by Ederson.
But with just three minutes of the second half played, City struck again as Fernandinho played the ball out to Sterling on the left and he went down under a Nacho Monreal challenge inside the area.
The referee pointed to the spot and Aguero did the rest, sending Cech the wrong way with a penalty that clipped the inside of the post on its way in.
Alex Iwobi caused a moment of concern after 55 minutes when Ederson fumbled his shot from distance, with the keeper barged into the net by Ramsey as he followed up.
Gunners boss Arsene Wenger brought on striker Alexandre Lacazette for Francis Coquelin as he sought a way back into the game, while Aguero made way for Gabriel Jesus.
And with 65 minutes the game sparked back into life as Lacazette made his mark, sending an angled finish beyond Ederson from Ramsey's pass to put Arsenal back into the game.
Sterling's looping cross was volleyed goalwards by Sane and blocked by Bellerin as City struck back, and from the resulting corner Cech made a fine save to deny substitute Jesus from close range.
But within 74 minutes gone Guardiola's men wrapped it up, Arsenal waiting for an offside flag that never came as David Silva darted into the box and set up the easiest of close-range finishes for Jesus.