French defender William Gallas and Frank Lampard scored for Chelsea in the first half while Brian McBride narrowed the lead for Fulham.
Heidar Helguson equalized in the 57th minute before Crespo secured the precious win in the 74th minute.
The result maintained Chelsea's position at the top of the table with 49 points while Fulham were left in 14th place with just 19 points.
Gallas needed only three minutes to put Chelsea ahead when he completed Robert Huth's header and sent a low shot into the bottom corner of the net.
Lampard extended the lead for Chelsea with a powerful drive that took a deflection off Fulham defender Zat Knight before zooming past keeper Mark Crossley.
American international McBride pulled one back for the visitors in the 29th minute when a free kick went through Petr Cech's legs only for McBride to pounce on the loose ball and fire into the back of the net.
Helguson successfully converted a spot-kick to level the score 12 minutes after re-start.
Crespo sealed the victory for Blues in the 74th minute when he met Joe Cole's cross with a brilliant first-timer past Crossley.
Elsewhere, Jose Antonio Reyes scored to help Arsenal beat Charlton Athletic 1-0.
The Spaniard scored what proved to be the winner in the 58th minute, sealing the victory for the London giants.
Tottenham beat Birmingham 2-0 thanks to second half goals from Robbie Keane and Jermaine Defoe.