Manchester United replaced Chelsea at the top of the table, Liverpool slipped to another Premier League defeat and Harry Redknapp enjoyed a happy return to Portsmouth.
Arsenal maintained their pursuit of the leading trio after beating Birmingham City, Stoke City battled past West Ham United and Everton were held by Wolves.
Reigning champions Manchester United were made to sweat before returning to the summit after a scrappy 2-1 win over Bolton Wanderers at Old Trafford.
United were up and running after just five minutes when Michael Owen's mis-timed header was somehow turned into his net by Zat Knight before Antonio Valencia's first goal for the club doubled the lead before half-time.
Matt Taylor's header on 75 minutes set up a tense finale and Knight had a late chance to atone for his earlier error only to head straight at the fit-again Edwin van der Sar.
Aston Villa came from behind to inflict back-to-back away defeats on Chelsea as James Collins' second-half header clinched a 2-1 win.
Didier Drogba's long-range effort provided Chelsea with an early lead at Villa Park, only for Martin O'Neill's side to level through Richard Dunne.
Poor marking from Chelsea allowed Collins to head home the winner on 52 minutes as keeper Brad Friedel atoned for conceding Drogba's goal by producing several smart stops.
Sunderland leapfrogged Liverpool in the table as Darren Bent's early goal condemned Rafa Benitez's men to a fourth defeat of the season at the Stadium of Light.
There was more than an element of luck about Sunderland's goal after just five minutes as Bent's far-post shot deflected past Jose Reina via a beach ball thrown on to the pitch by a Liverpool fan.
Arsenal maintained their 100 per cent record at Emirates Stadium this season after an entertaining 3-1 victory over a spirited Birmingham City.
A quick-fire double put Arsenal in the ascendancy as Robin van Persie drove home on 16 minutes and then Abou Diaby scored two minutes later.
Lee Bowyer pulled a goal back on 38 minutes after a mistake by Arsenal keeper Vito Mannone, but substitute Andrey Arshavin sealed the win with a cool 84th minute goal.
Tottenham boss Redknapp's return to Fratton Park proved a positive one as former Portsmouth striker Jermain Defoe grabbed the decisive goal in a 2-1 success.
The returning Ledley King headed Spurs in front just before the half-hour mark before Pompey old boy Defoe turned home Jermaine Jenas' cross in first-half stoppage-time.
Former Spurs misfit Kevin-Prince Boateng pulled a goal back for Portsmouth on 59 minutes and, two minutes later, Defoe was sent off for treading on Aaron Mokoena in front of referee Phil Dowd.
The numbers were evened up in the final minute as Michael Brown was dismissed after being shown a second yellow card.
Diniyar Bilyaletdinov's first goal for Everton secured a 1-1 draw at home to Wolves, who finished the match with 10 men.
Wolves took the lead through route-one football on 76 minutes when keeper Wayne Hennessey's long ball found its way through to Kevin Doyle, who slotted his shot under the leaping Tim Howard.
But Everton snatched a point two minutes from time when Bilyaletdinov turned home Jo's cross before Wolves striker Stefan Maierhofer was sent off for a second bookable offence after barging into Howard.
Stoke City continue to make the Britannia Stadium a place to be feared as James Beattie scored a goal in each half to clinch a 2-1 win over West Ham United.
Beattie's penalty, after former West Ham winger Matt Etherington fell under a challenge from Julien Faubert, gave Stoke an 11th minute lead before Matthew Upson headed the Hammers level on 34 minutes.
The decisive goal arrived on 69 minutes when Hammers keeper Robert Green could only parry Ricardo Fuller's shot and Beattie scrambled home the loose ball.