The striker's 83rd-minute header was his seventh of the season and left Watford with another defeat in the away column.
It was a little harsh for the visitors as they also had chances to win the game but Derby shaded the second half and had a little extra quality when it mattered.
Both teams traded chances in the opening 45 minutes when mistakes at both ends could have seen a hatful of goals before the break.
Jon Harley twice cleared off the line for Watford while former Derby favourite Tommy Smith, who was well received on his return to the club, set up some good openings for the visitors.
Jobi McAnuff was denied by a diving save from Stephen Bywater and the same player volleyed wastefully wide after Tamas Priskin had capitalised on a mistake by Jordan Stewart.
At the other end, Scott Loach made a wonderful reaction save to deny Luke Varney but Nathan Ellington should have put the rebound in instead of firing wide from eight yards.
Ellington missed another good chance before Bywater made another flying save to keep out Priskin's shot but the visitors suffered a blow when the striker had to be replaced in the 42nd minute.
Both teams tightened up after the interval but Derby still created some good chances and Loach again had to be alert to tip over an Ellington header in the 51st minute.
Watford might have scored with 12 minutes remaining when a low ball from McAnuff came back off Bywater but sub Jay DeMerit knocked the rebound wide.
It proved to be a costly miss because, five minutes later, Derby grabbed a winner. Ellington went down the left and out-muscled Liam Bridcutt to drive in a low cross which found Nacer Barazite on the right.
The on-loan Arsenal midfielder delivered a testing cross that Hulse headed into the bottom right corner from six yards out to end Derby's barren run.