With Chelsea suffering a shock defeat at Crystal Palace, Manuel Pellegrini’s men knew victory in north London would send them back to the summit on goal difference with two games in hand.
But despite dominating the opening 45 minutes and taking a deserved lead through David Silva, City were pegged back in the second period with Mathieu Flamini levelling for Arsene Wenger’s side.
Liverpool host Tottenham on Sunday and now have the championship destiny in their own hands, with key clashes against City and Chelsea at Anfield to come.
City – who had named an unchanged XI following the midweek 3-0 win at Manchester United – started brightly as full-back Pablo Zabaleta had some joy down the right before Jesus Navas curled a 20-yard effort just wide.
Arsenal, with Lukas Podolski starting after his goal in the 2-2 draw with Swansea on Tuesday night, just could not sustain any sort of possession as the visitors closed down space quickly.
The home supporters felt they should have been awarded a penalty on 12 minutes when Tomas Rosicky went down under a challenge from Zabaleta, but referee Mike Dean correctly pointed for a goal kick.
Arsenal started to ask more questions of the City rearguard, but City were lightning on the break and swept into the lead on 18 minutes.
Podolski was dispossessed in midfield, as Silva carried the ball forwards and to the edge of the Arsenal penalty area before feeding Edin Dzeko on the left.
His shot cannoned back off the near post, with the ball dropping at Silva’s feet and bouncing into the far corner.
Arsenal – thrashed 6-0 at Chelsea to ruin manager Arsene Wenger’s 1,000th match last weekend – needed a response to make sure they were not overrun once again in a showdown with a top-four rival.
The ball was in the City net after 21 minutes – but Arsenal midfielder Flamini had already been flagged offside from a deep left-wing cross before he looped his shot over Joe Hart.
Yaya Toure, who had a trial at Arsenal as a raw youngster, was booked on 30 minutes for tugging back Rosicky on the break. City skipper Vincent Kompany then also saw a yellow card for body-checking Mikel Arteta.
To their credit, Arsenal were still very much in the contest as half-time approached – with Rosicky the next man cautioned for another full-blooded challenge on former Gunners full-back Gael Clichy.
Silva soon followed after he left a high boot in on Arteta as the Spaniard hacked a clearance away in the Arsenal box.
City almost doubled their lead at the start of the second half when Navas’ low cross from the right was spilled by Szczesny, and the ball deflected off Arsenal defender Per Mertesacker but just the wrong side of the post.
Santi Cazorla’s drive stung the hands of England keeper Hart before Arsenal levelled on 53 minutes.
Patient build-up by the home side was rewarded when the ball was worked out to the left for Podolski, and his low centre into the penalty area was swept into the far corner by Flamini as he arrived on cue 12 yards out.
Arsenal suddenly found another gear, with Bacary Sagna’s cross from the right flying through the six-yard box. Hart then somehow deflected a fierce angled drive from Podolski behind.
City boss Pellegrini made a change on 65 minutes as James Milner came on for Navas.
Following their dominant spell, Arsenal started to come under more pressure, but showed great resilience – a trait so often missing this season.
With 13 minutes left, Wenger sent on Alex Oxlade-Chamberlain for Podolski, before City substitute Javi Garcia replaced Nasri.
Arsenal continued to push on but City, always dangerous on the counter, were not about to throw away what could just turn out to be a crucial point in their title quest.