A sickening injury-time goal deprived 10-man Arsenal of taking anything from a highly-charged New Year's Day clash against City at the Emirates.
Bukayo Saka fired us ahead during a superb first-half display, but the game was completely turned on its head during a crazy five-minute spell after the interval.
Manchester City were awarded a controversial penalty, Gabriel Martinelli missed an open goal and Gabriel was sent off, all in the space of a few minutes, and in the end our defensive efforts against 11 men were in vain when Rodri scrambled home in injury time.
Looking for our first league win over Manchester City since 2015, we set about the task from the first whistle, and were on top during the first half.
We had conceded inside the opening quarter of an hour in each of our previous five home Premier League meetings with City, but we gave as good as we got in the first 15 minutes this time - and more.
But the first chances went to the visitors. Gabriel made a crucial tackle to deny Raheem Sterling inside the box before Gabriel Jesus headed wide.
We were seeing plenty of the ball though and had a very strong penalty appeal turned down by referee Stuart Attwell, who was centre of attention for much of the afternoon, when Ederson appeared to trip Martin Odegaard in the box.
Some wonderful work from Thomas Partey - dominant in the middle of the pitch - created a chance for Gabriel Martinelli, only for his shot from a tight angle to be blocked.
Of course City's forward players were a constant danger, but we were looking the more likely scorers, and just after the half hour we got our reward.
A fine passing movement began with Ben White stepping in to win the ball, then moving it quickly to Partey, to Odegaard then to Kieran Tierney. The full back rolled his pass across the box and Saka finished superbly first time into the bottom corner.
Another rapid passing move stretched the opponents out of shape, resulting in Martinelli curling just over from 20 yards, with the keeper beaten.
Just before the interval the Brazilian again went close, with an effort that would have been a goal of the season contender had it nestled in the net. Picking the ball up in the left flank, he ran at the City defence, in to the box, then poking a shot just wide when he looked to have been crowded out.
Then the game flipped completely in a five-minute spell early in the second half.
And it was a controversial moment ten minutes into the second half that brought the champions level. Bernado Silva went down inside the area under the challenge of Granit Xhaka. The referee was well placed and waved away the initial appeals, but after consulting VAR, the spot kick was given.
Riyad Mahrez stepped up and converted from 12 yards to make it 1-1.
We could have been back ahead instantly, only for Nathan Ake to clear off his own line from an overhit backpass, and Martinelli missed the follow up with the goal at his mercy.
It would get worse seconds later. Gabriel - booked for protesting the penalty award - was then sent off for a foul on the halfway line.
The momentum had completely changed in the space of a few minutes.
With Mikel Arteta at home, isolating after testing positive for covid, his assistant Albert Stuivenberg took over on the touchline ,and he had to make several adjustments to deal with the numerical disadvantage.
City obviously monopolised possession from that point on, but the defence stood firm, the midfield looked organised, and our forward players ran their socks off.
It all came to nothing though, when Rodri poked home from close range at the death.
A hard result to take, certainly, but much pride to be taken from the performance.
WHAT IT MEANS
Our next three fixtures are all cup games. We're at home again on Thursday, up against Liverpool in the first leg of the Carabao Cup semi-final, before travelling to the City Ground, Nottingham to take on Forest in the FA Cup third round.
The following Thursday we're at Anfield for the second leg of the Carabao Cup, before Premier League action resumes with the north London derby on January 16.
Copyright 2023 The Arsenal Football Club Limited. Permission to use quotations from this article is granted subject to appropriate credit being given to www.arsenal.com as the source.