City made the better start, pinning the Gunners back and they got the goal their dominance deserved when Sergio Aguero beat Mohamed Elneny and finished clinically past Petr Cech.
But Arsene Wenger's side responded just 120 seconds later when Olivier Giroud has scored his first goal in 16 Premier League games with a free header from a corner.
Aguero had a chance to get his second but his venomous shot was deflected over the bar by Gabriel.
Arsenal then suffered an injury blow when Danny Welbeck was forced off after just 22 minutes with a knee injury.
With both sides fighting for Champions League qualification, the game went end to end in the first half.
Invalid email
We use your sign-up to provide content in ways you've consented to and to improve our understanding of you. This may include adverts from us and 3rd parties based on our understanding. You can unsubscribe at any time. Read our Privacy Policy
But it was City who took the lead again in the 51st minute through Kevin De Bruyne.
The Belgian ran past Hector Bellerin and Elneny before firing a well placed shot past Cech.
However Arsenal got themselves back into the game for the second time after an excellent one-two between Alexis and Giroud ended with the Chilean making no mistake with the finish.
City pushed for the late winner to boost the Champions League hopes but the closest they came was a Wilfried Bony effort which rattled the crossbar.
Manchester United now have a chance to leapfrog City into fourth if they beat West Ham on Tuesday.