Fulham exposed Chelsea's defensive deficiencies again as the champions were held to another 2-2 draw at Stamford Bridge.
Jose Mourinho's side, sorely missing injured duo John Terry and Petr Cech, are now six points behind Manchester United after the Premiership leaders beat Reading 3-2 at Old Trafford.
Moritz Volz got the match off to a marvellous start for Fulham, drilling home the 15,000th goal in Premiership history - via Paulo Ferreira's leg - to give the Cottagers the lead.
But the Blues were soon level, a poor defensive header leaving way open for Frank Lampard to drive against Liam Rosenior, who turned the ball past his own goalkeeper.
Lampard created Chelsea's second too, crossing well for Didier Drogba to extend his league tally to 13.
But the champions, also held to a 2-2 draw at home by Reading on Boxing Day, could not hold on and Carlos Bocanegra's strike saw them slip six points behind United.
Cristiano Ronaldo shone for the league leaders again as plucky Reading lost 3-2 at Old Trafford, with the visitors having Sam Sodje sent off.
Ronaldo set up Ole Gunnar Solskjaer for United's first goal before Ibrahima Sonko stole in front of the Red Devils' backline to head an equaliser.
The Portuguese star continued to threaten and put his side 2-1 ahead when he slotted into a gaping net after Solskjaer had hit the post, before side-footing a third. Lita pulled a goal back for the Royals but United held on.
Bolton moved into third place in the Barclays Premiership with a 3-2 victory over fellow high-fliers Portsmouth, overtaking an Arsenal side who play Sheffield United in the late kick-off.
Matt Taylor got things off to the perfect start for Pompey, slotting home his sixth of the season with a deft finish after only two minutes but it was not to be for the visitors.
Portsmouth goalkeeper David James gifted the Trotters an equaliser when his misjudged punch allowed Abdoulaye Faye to head into an empty net.
Ivan Campo and Nicolas Anelka scored to give Bolton a cushion but Andrew Cole popped up with a late goal to give his side hope.
Victor Anichebe's brace put Everton on the road to a handsome win 3-0 over Newcastle as he twice found the target.
Obafemi Martins chipped a penalty embarrassingly over the crossbar before Phil Neville conjured a rare goal with a fine shot from distance.
Liverpool recorded a slender 1-0 victory at Tottenham after a mistake from Pascal Chimbonda gifted them an opening.
Steven Gerrard collected the ball, before linking well with Dirk Kuyt to set up Luis Garcia, who stroked home with ease.
Bryan Hughes scored a dramatic late winner in the early game against Aston Villa as Alan Pardew recorded his first win since taking over as Charlton manager at The Valley.
Hughes nodded home from close range in the 91st minute to seal the points for the Addicks who had gone behind to a first-half Gareth Barry penalty.
Barry was then sent off for a foul on Dennis Rommedahl on the hour, just minutes after Darren Bent had equalised with a header.
Goals from strike partners Shabani Nonda and Benni McCarthy gave Blackburn a 2-1 win against Middlesbrough at Ewood Park.
Nonda scored first, volleying home following a chipped pass before Lucas Neill's foul allowed Aiyegbeni Yakubu to score from the penalty spot. McCarthy then headed the winner.
Manchester City secured a last-gasp win over hosts West Ham when DaMarcus Beasley drilled a fine effort to score the only goal of the game at Upton Park.
Watford and Wigan saw their clash at Vicarage Road abandoned after 56 minutes due to a waterlogged pitch.
The score was 1-1 after Emile Heskey had given the Latics a first-half lead when he shot firmly across goal. Tamas Priskin rose highest to head home from Jordan Stewart's cross to restore parity.