Rodri scored a stoppage-time goal to give Manchester City an 11th successive Premier League victory as the leaders came from behind to win 2-1 against Arsenal's battling 10 men.
In a flying start, City's Ruben Dias headed just wide before Gabriel Martinelli's shot was blocked by Ederson at the other end.
Arsenal broke the deadlock on 31 minutes to reward an impressive first-half display when Bukayo Saka swept in from Kieran Tierney's pass. It was the first time Pep Guardiola's side had trailed in a league match since 30 October.
But City levelled on 57 minutes when Bernardo Silva was adjudged to have been fouled by Granit Xhaka, following a VAR review, and Riyad Mahrez converted the penalty.
Within 60 seconds Martinelli then hit the post following Nathan Ake's goalline clearance, and less than a minute later Arsenal were reduced to 10 men as Gabriel was booked for a second time.
Although the Gunners dug in resolutely, Rodri popped up to poke in a last-gasp winner from close range.
City are now on 53 points, 11 clear at the top but having played one match more than second-placed Chelsea. Arsenal remain fourth with 35 points.
See: Arsenal report | Man City report
Next fixtures
Arsenal: 16 Jan v Spurs (A)
Man City: 15 Jan v Chelsea (H)
Match officials
Referee: Stuart Attwell. Assistants: Kevin Friend, Simon Long. Fourth official: Neil Davies. VAR: Jarred Gillet. Assistant VAR: Adam Nunn.
WHO'S GOING TO BE YOUR
MAN OF THE MATCH?
Vote at Full-time