Carlo Ancelotti’s team went behind at Blackburn and for a moment looked in trouble but hit back to level before the interval and find a winner in the 84th minute.
Benjani gave the home side the lead after he out muscled John Terry to an El Hadji-Diouf cross.
Moments before the Chelsea winner Jason Roberts had a wonderful opportunity to score on the break but failed and Branislav Ivanovic made the hosts pay for that miss by nodding home following good work by Yuri Zhirkov.
Chelsea maintain their five point advantage at the summit of the Premiership.
Arsenal made it 50 Premier League wins in London derby’s courtesy of a 1-0 triumph over bottom club West Ham.
The Gunners dominated and hit the woodwork twice but looked like they would fail to break down an obdurate West Ham rearguard in which keeper Robert Green played his part.
But Alex Song popped up at the far post to bundle in a Gael Clichy cross with only two minutes remaining.
Wolves drew level on the half-hour mark thanks to a fine strike by Nenad Miljas and scored the winner through Dave Edwards just after the break.
Wolves then held out for three points for the first time since the opening day of the season.
Dempsey headed the first after 30 minutes and added his second just before half time for only Fulham’s second win on the season.
Stoke made it three defeats on the bounce as they went down 1-0 at Everton.
The Toffees for their part extended their unbeaten run to five games hard-fought encounter at Goodison Park.
The deciding strike came in the 67th minute from Yakubu Aiyegbeni who fired home from a tight angle.