Match ends, Arsenal 2, Manchester City 1.
Arsenal moved to within two points of surprise Premier League leaders Leicester City with victory over Manchester City at Emirates Stadium.
The Gunners - without a title triumph since 2004 - showed the sort of impressive drive, cutting edge and resilience that will lead manager Arsene Wenger to believe Arsenal can finally end that barren spell.
City dominated early possession but Kevin de Bruyne wasted a good chance and Theo Walcott punished the visitors with a right-foot finish from 20 yards in the 33rd minute.
Eliaquim Mangala's dreadful clearance allowed Mesut Ozil's 15th assist of the season as he set up Olivier Giroud for an angled finish in first-half stoppage time. Yaya Toure's clever shot from outside the area set up a tense finale which saw both Toure and substitute Wilfried Bony waste chances to equalise.
- How the action unfolded, pictures and the best of social media
- Is it now or never for Wenger to win the title?
- Podcast: 'Arsenal were tactically superb'
Wenger's side have often been accused of having a soft centre when the pressure is on - but here, faced with the team many believe will still emerge as their closes title rivals, they showed a ruthless streak.
City may have dominated possession and territory for the first half hour but it was Arsenal who made it count at the business end. Their tally for the opening 45 minutes read two shots on target and two goals. For a manager who prides himself on efficiency, Wenger will have been delighted.
The Gunners were impressive at the back too, where goalkeeper Petr Cech was the epitome of safe handling and security, proving once more what a significant signing he has been.
Arsenal's defenders were in the mood too, with two crunching tackles from full-back Nacho Monreal drawing a high-five from fellow defender Per Mertesacker.
Walcott grows in stature
For a player often criticised for his lack of end product, Walcott looks to be evolving into the complete striker at the age of 26.
Walcott's goal, wonderfully accomplished as he turned inside before curling a perfect finish beyond the stretching City keeper Joe Hart, was his 13th in his past 17 league appearances and delivered further evidence of his development into a consistent and reliable goalscorer.
He, and indeed Arsenal, are receiving plenty of help from the Premier League's current creator supreme Ozil, who had a hand in both goals and received a standing ovation when he was replaced late on.
Add in Giroud's golden sequence of 12 goals in his past 14 matches in all competitions, and Arsenal will believe they possess the potency to carry them all the way.
Manchester City come up short again
Aside from a dominant opening half and a late rally after Toure's goal, this was another poor performance from Manuel Pellegrini's side.
City were too often laboured and the sight of captain Vincent Kompany watching forlornly from the stands pointed to where many of the problems lie.
Pellegrini may have signed Mangala and Nicolas Otamendi for fees in excess of £60m, but they are still not the same and markedly less assured.
And with Sergio Aguero still not fully fit and substituted, City are currently well short of their best.
Man of the match - Mesut Ozil
What the managers said
Arsenal manager Arsene Wenger: "I believe we have shown spirit, organisation, brilliance and altogether they gave us the three points.
"You could see that there is exceptional life in this team and when we did not have the legs anymore, we relied on spirit and that got us through in the end."
Manchester City manager Manuel Pellegrini: "In the second half we took some risks, we continued going for the game.
"We did better than Arsenal but we didn't win and that is all that matters.
"We didn't deserve to lose the game."
Former Manchester City defender Danny Mills: "City dominated possession but only had long shots as Arsenal played perfect counter-attacking football.
"Arsenal had really good chances to kill the game off and got nervous at the end but you have to say all credit to them. It was a terribly disappointing performance from City."
The stats you need to know
- Arsenal have lost just one of their 19 Premier League home games against Manchester City.
- Man City have won none of their last five Premier League away matches.
- Mesut Ozil recorded his 14th and 15th assists of the season in this game, reaching the total in 16 appearances, faster than any player in a single Premier League season.
- Ozil now has 29 Premier League assists in his career, as many as Eden Hazard but in 59 games fewer.
- Five of Arsenal's last six top-flight title wins have seen them in second place at Christmas, including two of their three Premier League titles.
- Man City have lost five games this season. The last team to lose five or more games before Christmas and still win the title were Everton in 1986-87.
Arsenal travel to 12th-placed Southampton on Boxing Day before entertaining Bournemouth two days later. Manchester City play Sunderland at home next, before taking on current leaders Leicester away on 28 December.
- 28CampbellSubstituted forGibbsat 70'minutes
- 11ÖzilSubstituted forOxlade-Chamberlainat 76'minutes
- 14WalcottSubstituted forChambersat 88'minutes
- 54Reine Adelaide
- 30OtamendiBooked at 48mins
- 17De Bruyne
- 42Y Touré
- 18DelphSubstituted forSterlingat 45'minutes
- 21SilvaBooked at 31minsSubstituted forNavasat 73'minutes
- 10AgüeroSubstituted forBonyat 63'minutes
- Andre Marriner
- Shots on Target
Second Half ends, Arsenal 2, Manchester City 1.
Foul by Yaya Touré (Manchester City).
Calum Chambers (Arsenal) wins a free kick in the defensive half.
Delay over. They are ready to continue.
Delay in match Olivier Giroud (Arsenal) because of an injury.
Attempt blocked. Fernandinho (Manchester City) right footed shot from outside the box is blocked.
Corner, Manchester City. Conceded by Héctor Bellerín.
Substitution, Arsenal. Calum Chambers replaces Theo Walcott.
Attempt missed. Yaya Touré (Manchester City) left footed shot from the centre of the box is close, but misses to the left. Assisted by Kevin De Bruyne with a through ball.
Attempt missed. Wilfried Bony (Manchester City) header from the centre of the box is too high. Assisted by Yaya Touré following a corner.
Attempt missed. Yaya Touré (Manchester City) right footed shot from outside the box misses to the left. Assisted by Kevin De Bruyne following a corner.
Corner, Manchester City. Conceded by Nacho Monreal.
Corner, Manchester City. Conceded by Laurent Koscielny.
Attempt blocked. Wilfried Bony (Manchester City) right footed shot from the centre of the box is blocked.
Attempt missed. Aaron Ramsey (Arsenal) left footed shot from the left side of the box misses to the right. Assisted by Alex Oxlade-Chamberlain.
Goal! Arsenal 2, Manchester City 1. Yaya Touré (Manchester City) left footed shot from outside the box to the top left corner. Assisted by Bacary Sagna.
Attempt saved. Theo Walcott (Arsenal) right footed shot from outside the box is saved in the centre of the goal. Assisted by Aaron Ramsey.
Substitution, Arsenal. Alex Oxlade-Chamberlain replaces Mesut Özil.
Attempt saved. Wilfried Bony (Manchester City) header from the centre of the box is saved in the top left corner. Assisted by Jesús Navas with a cross.