Rodri scored a stoppage-time winner as Manchester City beat 10-man Arsenal in an incident-packed encounter to move 11 points clear at the top of the Premier League.
That advantage will be cut to some extent on Sunday when second-placed Chelsea host third-placed Liverpool, although no team has failed to win the Premier League title when beginning the new year with a lead as big as City's.
Arsenal looked to have held out for a draw, but Rodri steered in a loose ball in the 93rd minute to help City claim an 11th successive league win in a game that also had two major VAR incidents and an avoidable red card for Gunners defender Gabriel Magalhaes.
The hosts were the better side early on at Emirates Stadium, and Bukayo Saka swept in a deserved opener to finish off a slick move before the Gunners self-destructed after the break.
Riyad Mahrez levelled from the penalty spot after Bernardo Silva was brought down by Granit Xhaka, referee Stuart Attwell overturning his initial decision after viewing the pitch-side monitor.
Arsenal felt aggrieved at that call after their own shouts for a penalty in the first half were denied following a long VAR check for Ederson's tackle on Martin Odegaard.
But one minute after conceding from a penalty Gabriel was sent off for two yellow cards in quick succession, the first for trying to scuff up the spot and the second for a foul on Gabriel Jesus.
Arsenal, whose manager Mikel Arteta was forced to watch from home following a positive Covid-19 test, remain fourth in the table.
City outlast improved Gunners
City are the blueprint for Arsenal in terms of their playing style and philosophy and, while a young Gunners side remain some way behind in their evolution under former City assistant manager Arteta, they showed how far they have come this season.
Pep Guardiola found his City team up against a completely different outfit to the one they dismantled 5-0 in August to briefly send Arsenal to the bottom of the table.
Guardiola said beforehand this would be the best Arsenal team he has faced during his time in England, despite Arteta - the Gunners' "most important player", according to Guardiola - having to watch this one unfold from home.
With assistant Albert Stuivenberg on the touchline, the energetic hosts swarmed and pressed in an electric opening half an hour.
They capitalised on their dominant start with a goal out of the leaders' playbook, Ben White winning back possession and starting a swift counter-attack which ended when Kieran Tierney slid a ball weighted perfectly for Saka to send a first-time finish into the bottom corner.
It was only the second first-half goal Manchester City have conceded in the league this season.
An earlier slick move had put Martin Odegaard in behind the City defence only for goalkeeper Ederson to get a toe to the ball, with the video assistant referee taking a long look before agreeing with the on-field decision that it was not a penalty.
Perhaps that added to Arsenal's frustration when they had a penalty awarded against them after VAR intervened, but a momentary loss of composure cost them.
Gabriel's two yellow cards came either side of Gabriel Martinelli striking the bar in what was a frantic few minutes after Mahrez levelled from the spot.
Arsenal were forced to dig in and defend after that and looked to have done enough until a hopeful cross from the right dropped to midfielder Rodri, who poked the ball beyond Aaron Ramsdale.
Despite their improvement, it means Arteta has lost all five of his Premier League meetings against former mentor Guardiola.
A late blow for City's title rivals
Riyad Mahrez has scored in each of his last five appearances for Manchester City in all competitionsGuardiola's domestic juggernauts racked up records for goals and points in 2021 and will finish New Year's Day in 2022 with a lead that has only been bettered twice in the Premier League era.
Manchester United in 1993-94 and City themselves in 2017-18 - both of whom held 12-point leads - went on to win the competition and Rodri's late goal must have left City's title rivals feeling deflated this time round.
They did have early chances. Gabriel Jesus steered a header wide and Ruben Dias flicked another beyond the post, but the game turned in their favour after the break.
City have not lost in the league since October and have had to show resilience in their past two games to maintain their impressive winning run.
But, for all the goals and free-flowing football, it may just be the 1-0 win at Brentford on Wednesday and this victory - their latest winning goal in the league in more than three years - that gives City the edge come the end of the season.
Player of the match
SakaBukayo Saka
Line-ups
Arsenal
Formation 4-2-3-1
32Ramsdale
18Tomiyasu4White6Gabriel3Tierney
5Partey34Xhaka
7Saka8Ødegaard35Martinelli
9Lacazette
32Ramsdale18Tomiyasu4White6GabrielBooked at 59mins3Tierney5Partey34XhakaBooked at 55mins7SakaBooked at 63minsSubstituted forElnenyat 84'minutes8ØdegaardSubstituted forHoldingat 63'minutesBooked at 68mins35Martinelli9LacazetteSubstituted forSmith Roweat 71'minutesSubstitutes
1Leno10Smith Rowe15Maitland-Niles16Holding17Cédric Soares19Pépé20Tavares23Sambi Lokonga25ElnenyMan City
Formation 4-3-3
31Ederson
27Cancelo3Rúben Dias14Laporte6Aké
20Bernardo Silva16Rodri17De Bruyne
26Mahrez9Gabriel Jesus7Sterling
31Ederson27Cancelo3Rúben Dias14Laporte6Aké20Bernardo SilvaBooked at 90mins16RodriBooked at 90mins17De Bruyne26Mahrez9Gabriel JesusSubstituted forGündoganat 63'minutes7SterlingSubstitutes
2Walker8Gündogan10Grealish13Steffen25Fernandinho37Chagas79Mbete80Palmer87McAteeReferee:Stuart AttwellAttendance:59,757Live Text
Match ends, Arsenal 1, Manchester City 2.
Second Half ends, Arsenal 1, Manchester City 2.
Foul by Riyad Mahrez (Manchester City).
Gabriel Martinelli (Arsenal) wins a free kick in the defensive half.
Bernardo Silva (Manchester City) is shown the yellow card.
Offside, Manchester City. Raheem Sterling tries a through ball, but Kevin De Bruyne is caught offside.
Rodri (Manchester City) is shown the yellow card for excessive celebration.
Goal! Arsenal 1, Manchester City 2. Rodri (Manchester City) left footed shot from the centre of the box to the centre of the goal.
Attempt blocked. Aymeric Laporte (Manchester City) right footed shot from the centre of the box is blocked.
Attempt blocked. João Cancelo (Manchester City) right footed shot from outside the box is blocked. Assisted by Kevin De Bruyne.
João Cancelo (Manchester City) wins a free kick on the right wing.
Foul by Kieran Tierney (Arsenal).
Corner, Arsenal. Conceded by Nathan Aké.
Offside, Manchester City. Nathan Aké tries a through ball, but Rúben Dias is caught offside.
Corner, Manchester City. Conceded by Granit Xhaka.
Attempt blocked. Riyad Mahrez (Manchester City) right footed shot from a difficult angle on the right is blocked. Assisted by João Cancelo.
Substitution, Arsenal. Mohamed Elneny replaces Bukayo Saka.
Hand ball by Raheem Sterling (Manchester City).
Attempt blocked. Rúben Dias (Manchester City) right footed shot from outside the box is blocked.
Raheem Sterling (Manchester City) wins a free kick in the defensive half.
Our coverage of your Premier League club is bigger and better than ever before - here's everything you need to know to make sure you never miss a moment