Arsenal coach Mikel Arteta missed the game due to a positive COVID-19 test, but his side cast aside any lingering memories of their 5-0 thrashing at the hands of City in August as they pressed high up the pitch from the first whistle.
Their early pressure looked to have paid dividends when playmaker Martin Odegaard was upended in the box by goalkeeper Ederson, but neither the referee nor VAR deemed the challenge worth of a penalty.
The Gunners eventually took a deserved lead in the 31st minute when Bukayo Saka finished a sweeping move by rifling home Kieran Tierney’s pass, and they closed out the first half without allowing City a single shot on target.
Seeking their 11th Premier League win in a row, City were not prepared to give up and they flipped the script in the second half to claw their way back into the game.
The visitors levelled from the spot through Riyad Mahrez early in the second half when Granit Xhaka was adjudged to have fouled Bernardo Silva in the box after a VAR review.
Gabriel Martinelli missed a glorious chance to put Arsenal back in the lead moments later before Gabriel was sent off for his second yellow card, picked up for a foul on Gabriel Jesus.
Arsenal held their shape but they failed to deal with a high ball into the box in stoppage time and it fell to Rodri, who drilled it home to grab all three points with only their second effort on target in the game.
The win extends City’s lead over Chelsea, who take on third-placed Liverpool on Sunday, to 11 points, while Arsenal are fourth on 35 points.
“They did a great game, but fortunately we saw our personality, our champion personality,” goalscorer Rodri told broadcaster BT Sport.
Arsenal were annoyed that the incident involving Odegaard was not studied more closely by referee Stuart Attwell. In contrast, he reviewed the footage before awarding Manchester City their penalty.
“I don’t know why the referee is told to see one and not the other. It is there for a reason, go and use it. It is the inconsistency, the whole point is to help the game out,” said Arsenal keeper Aaron Ramsdale.