Mason Mount finally broke the resistance of 10-man Fulham as Chelsea laboured their way to only a second Premier League win in seven games.
Antonee Robinson was sent off late in the first half for Fulham for a dangerous tackle on Cesar Azpilicueta.
Ten different players had shots for Chelsea, but they were wasteful in front of goal.
Their biggest chance before the goal was when Mount crashed a shot off the crossbar.
The England midfielder eventually proved the match-winner with a half-volley after Alphonse Areola flapped at Ben Chilwell’s cross.
The win takes Chelsea up to seventh, while Fulham – who had drawn their previous five league games – are four points from safety.
Chelsea went top of the table on 5 December when they beat Leeds. This was only their second victory in the league since then – and they sit seven points off Manchester United, having played an extra game.
Boss Frank Lampard talked about “the experience and personality of” Olivier Giroud and Antonio Rudiger when explaining their places in starting XI – and spoke of the need to “kick-start” their season.
The result came eventually, albeit not with a stellar performance.
Giroud and Chilwell both missed the target with volleys, while Hakim Ziyech had a shot well saved before Mount hit the bar.
Rudiger had a header tipped wide, Ziyech went close with a shot from the left-wing and Giroud flicked an effort wide at the near post.
It looked as if the goal was never going to come before Mount finally converted with a well-hit low finish.
Substitute Timo Werner had a glorious chance to end his Premier League goal drought – going back to 7 November – late on but slotted wide at the end of a counter-attack.
Robinson’s dismissal came during Fulham’s best spell of the game – or rather at the end of it.
Three of their five first-half shots came in the five minutes before the USA wing-back’s mistimed tackle on Azpilicueta. Some disputed whether the red card was merited, but in the modern era it was dangerous enough to justify a sending off.
It was a disastrous three minutes for Fulham because Ivan Cavaleiro had just missed their best chance of the game when, unmarked on the penalty spot, he fired over from Kenny Tete’s pass.
They ended up defending for most of the second half – with only 23.2% of the ball – although they did have chances. Harrison Reed and Aboubakar Kamara forced saves and Cavaleiro had a shot blocked by Thiago Silva.
Just when it looked like they were going to make it six Premier League draws in a row, Areola failed to deal sufficiently with Chilwell’s cross and Mount pounced.