Chelsea needed Hakim Ziyech to come off the bench and score the winner 18 minutes from time at Vicarage Road to hold off City and Liverpool at the top of the table.
After a half an hour hold up early in the match as a fan was attended to by emergency services, Mason Mount gave the European champions the lead.
Emmanuel Dennis hit back for Watford on the stroke of half-time and for a while it looked like Chelsea could drop points for the third time in four league games.
But Ziyech's powerful finish from Mount's cross maintained their slender one-point advantage over City.
West Ham's hopes of a top-four finish suffered another blow as Brighton struck late to snatch a 1-1 draw at the London Stadium.
Tomas Soucek opened the scoring for the Hammers after just five minutes, but after a second for David Moyes's men was controversially ruled out by a VAR review, Neal Maupay earned a point for Brighton a minute from time.
In the other match affected by a lengthy delay to attend to an ill fan in the crowd, Leicester twice came from behind to salvage a 2-2 draw at Southampton.
Jan Bednarek and Che Adams put the home side in front in the first half, but Jonny Evans and James Maddison levelled to keep Leicester just five points off the top four.
Burnley edged a point closer to survival but have still only won once this season after a 0-0 draw at Wolves.
Standout matches today