Manchester United closed to within two points of Chelsea at the top of the Premiership table as they beat West Ham United 4-0 and the leaders were beaten 2-1 at Manchester City.
Arsenal, in third, bounced back after two straight league defeats to beat Stoke City 2-0, while Liverpool drew 0-0 at Blackburn Rovers, who had Sam Allardyce back in charge after his heart surgery.
In a pulsating game at Eastlands, Chelsea went ahead after eight minutes. A corner was returned to the box and Shay Given made a reaction save from Branislav Ivanovic.
The ball bounced loose to Nicolas Anelka and although Given blocked his effort the ball cannoned off Emmanuel Adebayor and in.
The Togolese striker scored at the right end eight minutes before the break, though.
It too stemmed from a corner, the ball coming loose to Shaun Wright-Phillips, whose goalbound effort hit Micah Richards and fell for Adebayor to roll in.
Chelsea protested that the ball had struck Richards's arms, which it had, but they were tucked in tight to his chest and there was clearly no intent.
Didier Drogba went close with a free-kick late in the first half, but it was City who took the lead, Carlos Tevez bending in a low free-kick 10 minutes after the break.
Chelsea became increasingly rattled, collecting six yellow cards, but they were given the chance to level eight minutes from time as Nedum Onuoha fouled Drogba in the box.
Diving to his right, though, Shay Given saved Frank Lampard's penalty.
At Upton Park, West Ham had held United until the final minute of the first half, when Paul Scholes struck with a ferocious drive from the edge of the area.
Darron Gibson, after scoring twice in the Carling Cup in midweek, added the second with a superb drive with the outside of his right foot from a Ryan Giggs cross.
Luis Valencia converted Anderson's cross to make it three, and as United clicked, Rooney added a fourth. United, though, lost Gary Neville and Wes Brown to injury, leaving them to play midfielder Michael Carrick and full-back Patrice Evra at centre-back.
"The injuries in defence are becoming a bit of a headache to us," said manager Sir Alex Ferguson.
"Carrick stepped in and did very, very well. He's got the composure and the pace and it was a good performance in the second half."
Arsenal had much the better of it against Stoke, but made heavy weather of winning the game.
Cesc Fabregas missed a penalty but Andrey Arshavin put them ahead after 26 minutes following a neat interchange with Fabregas, and Aaron Ramsey added a late second.
Steven Gerrard became the 13th player to reach 500 appearances for Liverpool, but a stalemate at Blackburn leaves them still in sixth. David Ngog hit the bar midway through the second half, the ball bobbling as he tried to guide Glenn Johnson's cross towards an open goal.
Aston Villa maintained their pursuit of the Champions League places with a 3-0 win over Hull City, who lost midfielder Jimmy Bullard to what looked a serious knee injury.
Richard Dunne put Villa ahead after 13 minutes, James Milner added the second quarter of an hour later with Hull keeper Matt Duke caught off his line, and John Carew completed the scoring from the penalty spot.
"Milner was brilliant," said Villa boss Martin O'Neill. "That is the second game in a row he has played in central midfield for us and he performed as if he has been there all his career."
Avram Grant picked up his first points as Portsmouth manager Saturday with a 2-0 win over Burnley.
Aruna Dindane missed a first-half penalty, but recovered to add a late second after Hermann Hreidarsson had given Portsmouth a 64th-minute lead.
The victory temporarily lifted Portsmouth off the bottom, but they were cast back there as Wolverhampton Wanderers then beat Bolton Wanderers 2-1.
Jody Craddock smashed home - possibly from an offside position in the third minute after Christophe Berra had flicked on Nenad Milijas's free-kick.
Milijas added the second with 30-yard drive after 63 minutes, and although Johan Elmander pulled one back, Wolves hung on to climb above Bolton, who slip to second-bottom.
Birmingham City came from behind to beat Wigan Athletic 3-2. Charles N'Zogbia curled in after 33 minutes to give Wigan the lead, but Sebastian Larsson levelled just after the hour, Christian Benitez added a second five minutes later.
Larsson and Jordi Gomez exchanged free-kick goals, and Birmingham held on to extend unbeaten run to six games.
