Chelsea opened the scoring in the 12th minute through Pedro Rodriguez after he received the ball from Eden Hazard on the edge of the area and bent a fine first-time effort off the post and into the top corner.
It could have been two just a few minutes later when Alvaro Morata picked out the run of Cesc Fabregas into the box, but the midfielder's dinked effort was turned away by Heurelho Gomes.
Watford had their first chance just after the half-hour mark through a Tom Cleverley free kick, but Thibaut Courtois did well to get across and tip the ball away.
But the visitors were level on the stroke of half-time, with Abdoulaye Doucoure pouncing on a loose ball in the Chelsea box and rifling it through a sea of bodies past Courtois at the near post.
Watford nearly edged ahead just after the restart when Kiko Femenia picked out Richarlison unmarked at the far post, but with an open goal in front of him, he somehow managed to hit his shot wide.
The Hornets were in front just a few moments later, however, with Roberto Pereyra slotting past Courtois after being picked out by Richarlison following Tiemoue Bakayoko's loss of possession in the middle.
Chelsea drew level in the 71st minute with Pedro finding substitute Michy Batshuayi, who glanced a header past Gomes into the back of the net.
Batshuayi had a chance to win it for Chelsea eight minutes from time when he found space inside the box for a strike, yet his effort drifted just over the bar.
But with 87 minutes on the clock, up popped Cesar Azpilicueta at the far post to head home a Willian cross, before Batshuayi added a fourth in stoppage time to seal the three points.