Sergio Aguero scored the opener, but Alex Iwobi, Theo Walcott and Chuba Akpom scored for the Gunners before Kelechi Iheanacho's consolation.
Arsenal defender Gabriel went off on a stretcher with an ankle injury late on.
Elsewhere, Chelsea lost John Terry to injury in a 4-2 win over Werder Bremen and Liverpool lost 4-0 to Mainz, a day after beating Barcelona by that score.
The Reds named a slightly weakened team against one of manager Jurgen Klopp's old clubs, although Emre Can, Jordan Henderson, Adam Lallana and Divock Origi all started.
For Chelsea, boss Antonio Conte immediately replaced Terry, who limped off after being caught in the head.
Eden Hazard and Oscar gave Chelsea a 2-0 lead in Bremen before Claudio Pizarro pulled a goal back.
Diego Costa made it 3-1 before half-time only for Lennart Thy to reduce the deficit. Pedro added a late fourth.
Southampton beat Athletic Bilbao 1-0 at St Mary's, with Shane Long scoring the only goal.
Arsenal came from behind to beat Manchester City 3-2 in Gothenburg in their final pre-season friendly.