Arsenal 7 - 3 Newcastle
Man Utd 2 - 0 West Brom
Reading 1 - 0 West Ham
Norwich 3 - 4 Man City
Stoke City 3 - 3 Southampto
Fulham 1 - 2 Swansea
A Villa 0 - 3 Wigan
Sunderland 1 - 2 Tottenham
Theo Walcott gave Arsene Wenger yet another reminder of his goalscoring talents with a stunning hat-trick as Arsenal sank Newcastle 7-3 in a 10-goal thriller at the Emirates Stadium.
Wenger had talked up Walcott as the next Thierry Henry on the eve of the game, and the England forward - still to pen a new deal with the club - did little to disprove that idea, scoring three excellent goals and setting up two more to give Arsenal the win that ensures they will end 2012 in fifth place.
Arsenal's record scorer Henry was in the stands watching his beloved former club and he was on his feet after 20 minutes thanks to Walcott's opener - a fine curled finish following an Henry-esque break from the halfway line.
Newcastle pulled level through Demba Ba, but Alex Oxlade-Chamberlain scored, only for Ba to grab his second to make it 2-2.
Arsenal looked set for a disappointing draw after Sylvain Marveaux equalised Lukasz Podolski's header, but Walcott turned on the class to put the Gunners 4-3 up.
1 Man Utd 49
2 Man City 42
3 Tottenham 36
4 Chelsea 35
5 Arsenal 33
6 Everton 33
The former Southampton man set up Olivier Giroud twice and added his much-deserved third strike in injury time with a deft chip over Tim Krul.
Earlier, 10-man Manchester City came out on top in a seven-goal thriller at Norwich to avoid falling further behind in the title race.
The defending champions looked to be cruising to a routine win after Edin Dzeko bagged a brace inside the opening four minutes, but Anthony Pilkington pulled one back before Samir Nasri was dismissed following a confrontation with Sebastien Bassong.
The visitors made light of the disadvantage to go 3-1 up thanks to a Sergio Aguero goal, but Norwich fought back as Russell Martin found the net.
But a Mark Bunn own goal, after a Dzeko shot had come back off the post, sealed a 4-3 win, despite Martin's second for the Canaries.
Manchester United retained their seven-point lead over their city rivals thanks to a comfortable 2-0 win over West Brom at Old Trafford.
Gareth McAuley diverted an Ashley Young cross into his own net for the opener, with Robin van Persie sealing the win late on.
Aston Villa's miserable recent run continued as they suffered another thumping defeat as they went down 3-0 at home to Wigan.
Ivan Ramis headed in the opener in the third minute, with Emmerson Boyce and Arouna Kone completing the scoring.
Villa would have fallen into the bottom three were it not for a superb comeback from 10-man Stoke.
Southampton had led 3-1 at the Britannia Stadium thanks to strikes from Rickie Lambert, Jay Rodriguez and an Andy Wilkinson own goal.
Kenwyne Jones had got Stoke's goal and Matthew Upson made it 3-2 after 67 minutes, only for the Potters to have Steven Nzonzi dismissed for a tackle on Jack Cork.
But Cameron Jerome popped up in stoppage time to make it 3-3 and earn the hosts a point from a breathless encounter.
Swansea's impressive campaign continued with a 2-1 win at Fulham.
Danny Graham put the Swans ahead and Jonathan de Guzman doubled their advantage, meaning Bryan Ruiz's goal was not enough for Fulham.
In the day's early kick-off Tottenham came from a goal down to beat Sunderland 2-1. John O'Shea put the Black Cats ahead but a Carlos Cuellar own goal and an Aaron Lennon strike gave Spurs the points.
Reading gave their survival hopes a boost as they beat West Ham 1-0 after Pavel Pogrebnyak capitalised on a James Collins error.