After a bright start from City — who offered early indications of the threat their attacking pace would pose — a superb pass from Kevin De Bruyne unhinged the Arsenal defence and enabled Leroy Sane to power his way past Hector Bellerin and around David Ospina to open the scoring.
Jesus Navas, playing at full-back for City, picked up a yellow card for a crude challenge on Nacho Monreal before his side came within a whisker of going two goals up with less than 10 minutes played.
This time, De Bruyne saw an effort from the edge of the box crash back off the post before Ospina made a good stop to deny David Silva from the rebound.
Francis Coquelin went into the book after 15 minutes for a foul on Silva as the jittery home side struggled to settle into the game.
But Arsene Wenger’s team rallied to produce their first moment of danger soon afterwards as Alexis Sanchez steered a pass towards Mesut Ozil inside the penalty area and his shot on the turn was held by Willy Cabellero.
The home side’s Granit Xhaka became the next player booked, for a challenge on Nicolas Otamendi, and there were growing signs of frustration from sections of the home support as Arsenal failed to trouble their visitors with some aimless deliveries into the area.
As the half ticked towards its final five minutes, John Stones got up to meet a City corner but steered his header wide of the far post.
Within moments Arsenal were level as Theo Walcott, played onside by Gael Clichy, stabbed a finish past Cabellero after City had failed to deal with a corner — but that parity lasted for less than two minutes.
Arsenal were the architects of their own downfall as, after De Bruyne had hit the post again with a deflected effort, they spurned two clear chances to get the ball away and were made to pay when Silva played in Aguero to fire an angled finish past Ospina.
Walcott almost brought Arsenal level again in first half stoppage time as he controlled the ball just inside the area before sending a dipping volley onto the roof of the net.
Wenger was forced into a half-time substitution as defender Laurent Koscielny, who had appeared to be in discomfort at the end of the first period, was replaced by Gabriel.
City, meanwhile, replaced Raheem Sterling with Yaya Toure and could have given themselves a 3-1 cushion soon after the restart when Navas flighted a cross towards Aguero who, unmarked, could only thump a header wide of the post.
And he was made to pay for that missed chance when Arsenal levelled for a second time after 53 minutes when Shkodran Mustafi was left alone in the area to head an Ozil corner powerfully beyond Caballero.
As Pep Guardiola’s side looked to respond, Ospina made a good save to push away a Fernandinho drive, following it up a few moments later with a sharp catch as Aguero glanced a header toward the far corner.
After 67 minutes, Wenger brought striker Olivier Giroud into the fray and Walcott, the scorer of the first equaliser, was taken off.
Another change followed soon afterwards as Alex Iwobi came on for Danny Welbeck, but the pace of the game had slowed and neither side was creating attacking momentum with their earlier frequency.
With five minutes remaining, Silva fired a skidding low shot wide of the post for City before Iwobi blasted an effort high over the top for the home side and Navas sliced well wide at the other end.
City appealed strongly for a late penalty when they felt Nacho Monreal had handled inside the area under pressure from Navas — but the referee waved those requests away.
The result means Arsenal have now one only once in six Premier League games and remain seven points behind fourth-placed City.