The Gunners, who included England midfielder Jack Wilshere in the squad after more than a year out with injury, were second best all afternoon as Grant Holt's scrambled effort on 20 minutes following a mistake by goalkeeper Vito Mannone proved enough for all three points to move the hosts out of the relegation zone.
Arsenal, who have now lost two of their last three league games, were well below the usual fluent best and created very few openings as for once the Premier League's second-worst defence held firm.
Earlier, Juan Mata scored twice in two minutes to crush Andre Villas-Boas' hopes of exacting revenge on his former employers Chelsea as the table-topping Blues beat Tottenham 4-2 at White Hart Lane.
Gary Cahill scored the only goal of the first half but Spurs responded at the start of the second with goals from William Gallas and Jermain Defoe to put Andre Villas-Boas within sight of a sweet victory against the club who sacked him last season.
It was not to be, though, as a quickfire brace from Juan Mata put Chelsea back in front and substitute Daniel Sturridge made sure of the points late on.
Manchester United pegged Chelsea's lead at four points despite trailing Stoke early on to a Wayne Rooney own goal.
The striker was in the wrong place in the 11th minute as he diverted Charlie Adam's free-kick into his own net but he made amends with his first Premier League goal of the season to level up 16 minutes later.
It was a straightforward header from Rooney from a lovely Robin van Persie cross, and the Dutchman made it 2-1 to United with a goal a minute before half-time.
Danny Welbeck grabbed a third just after half-time and, although Michael Kightly gave Stoke hope with a solo effort in the 58th minute, Rooney made it 4-2 seven minutes later.
Liverpool managed their first home win of the season, 1-0 against struggling Reading, courtesy of a first Premier League goal from 17-year-old Raheem Sterling.
The teenager became the eighth youngest goalscorer in Premier League history when he netted in the 29th minute and the youngest Liverpool scorer since Michael Owen.
Substitute Edin Dzeko scored twice in the final 10 minutes to earn 10-man Manchester City a last-gasp 2-1 victory over West Brom at The Hawthorns.
It looked set to be another disappointing day in City's stuttering title defence when James Milner was sent off for fouling Shane Long as the last man in the 23rd minute and Long gave the hosts the lead 67 minutes in.
Dzeko only entered the fray in the 79th minute but immediately tied things up and two minutes into injury time he converted Sergio Aguero's pass for an unlikely three points.Southampton's leaky defence cost them again as West Ham raced to a 4-1 victory at Upton Park, with all the goals coming in the second half.
It took the hosts less than three minutes of the second half to take control, Mark Noble and Kevin Nolan netting, but Adam Lallana pegged them back in the 63rd minute.
However, Jose Fonte handled in the 72nd minute to give Noble the chance of a second from the spot before Modibo Maiga scored his first Premier League goal three minutes from time.
Two out-of-form teams met at the Liberty Stadium and it was Swansea who ended their five-game winless run with a 2-1 victory over Wigan.
Pablo Hernandez broke the deadlock in the 65th minute and Michu added a second two minutes later. Emmerson Boyce netted with a neat back heel to make it three goals in five minutes but Wigan could not find an equaliser.
It was a quiet afternoon at Craven Cottage for 84 minutes but Chris Baird ensured it was Fulham who took the three points with a 1-0 victory over Aston Villa.
Saturday's Premier League Fixtures
Tottenham 2-4 Chelsea
Liverpool 1-0 Reading
Manchester United 4-2 Stoke
West Brom 1-2 Manchester City
Norwich 1-0 Arsenal
Fulham 1-0 Aston Villa
Swansea 2-1 Wigan
West Ham 4-1 Southampton
Sunday's Premier League Fixtures
Sunderland vs Newcastle
QPR vs Everton