City had been trailing through Bukayo Saka's goal during an electrifying first-half display from Arsenal.
But the game shifted in City's favor during a two-minute spell after the break.
Granit Xhaka conceded a penalty for bringing down Bernardo Silva with a trailing leg and Riyad Mahrez levelled from the spot in the 57th minute.
What proved as costly for Arsenal was Gabriel getting booked for trying to scuff the penalty spot before Mahrez's kick.
Within a minute, Arsenal had an immediate chance to regain the lead. But Nathan Ake's hooked, scrambling goal-line clearance prevented an own goal from Aymeric Laporte after he headed over goalkeeper Ederson.
Then Gabriel was booked again in the 59th and saw red for fouling Gabriel Jesus.
Arsenal's attempts to cling on to the point were thwarted by Laporte's deflected shot reaching Rodri to score.
"We are very frustrated with the outcome if you play a game like this against one of the best teams in the world," said Arsenal assistant manager Albert Stuivenberg, who was on the touchline while manager Mikel Arteta isolates with COVID-19. "At the end to have zero points is frustrating because we should have won the game."
Arsenal was frustrated in the first half not to be awarded a penalty before Saka struck with a first-time connection from Kieran Tierney's well-placed pass, City goalkeeper Ederson having escaped action for bringing down Martin Odegaard.
"I am looking for consistency," Stuivenberg said. "We have VAR in place so why not check yourself as a referee? That did not happen so it is disappointing."