Arsenal 1 - 0 Everton
Robin van Persie scored a sensational volley to mark Arsenal's 125th birthday with a victory over Everton that puts them fourth in the Premier League.
The Dutchman hit his 33rd league goal of the calendar year to move him three behind Alan Shearer's record of 36.
It was Van Persie's only opportunity during a stop-start match in which Theo Walcott, Gervinho and Aaron Ramsey squandered chances to open the scoring.
Everton went close late on but managed just one attempt on target all match.
The result sees Arsenal leapfrog Chelsea - who face Manchester City on Monday - and occupy a Champions League spot for the first time this season.
They have now won seven of their last eight matches, taking 22 points from a possible 24, following a dreadful start to the campaign.
It was a fitting scoreline on the club's landmark anniversary, and appropriate that Van Persie should get the winner.
Everton have still not won at Arsenal since 1996 and they now sit 12th in the table, with four defeat from their last six league matches.
While Gunners boss Arsene Wenger had warned his players against letting the pre-match festivities distract them from the task at hand, they clearly struggled for fluency early on.
Despite dominating possession and territory, they were being comfortably contained by Everton's well-organised midfield and diligent back four.
In fact, it was the visitors who created the first chance of any note as a Wojciech Szczesny punch fell to Louis Saha and his drive was blocked in a goalmouth scramble.
Arsenal were playing without a recognised full-back - their defence comprising four centre-halves - and the lack of width was hindering their progress.
They instead began to probe with balls through the middle and it was with four such deliveries that they had chances to open the scoring.
First, former Toffee Mikel Arteta sent Walcott racing clear but instead of shooting he squared towards Ramsey, who was foiled by Tony Hibbert.
A similar situation saw Gervinho play in Van Persie rather than going for goal himself, only for the Dutchman to drift marginally offside.
Ramsey then curled over after being released by Alex Song and Gervinho was denied by the legs of Tim Howard.
Everton were now firmly on the back foot and it required some sharp work from Johnny Heitinga and Phil Jagielka to thwart Walcott and Thomas Vermaelen.
Arsenal pressed forward again after half-time but other than a venomous Walcott shot that Howard repelled with a fine one-handed save, the hosts offered little cutting edge.
Moyes replaced Saha with centre-back Sylvain Distin, leaving his team without a recognised striker, yet for a short period they were on top of their opponents.
Vermaelen's last-ditch header prevented Tim Cahill from meeting a Baines cross at the back post while Phil Neville fired on to the roof of the net.
However, just as Wenger was preparing to introduce Andrey Arshavin and Tomas Rosicky, Van Persie struck - and how.
The 28-year-old watched Song's lofted cross-field pass all the way on to his left boot and volleyed a sensational low finish across Howard and in off the post.
It moved him to within one goal of Thierry Henry's 34 goals in 2004 and Henry rose from his seat in the stands to applaud Van Persie.
He almost made it two with a header before Everton applied some late pressure - substitute Connor McAleny drilling inches wide - but Arsenal were able to celebrate.