Bolton caused Watford a host of problems in the first half and former Hornets striker Marvin Sordell gave his side the lead from a penalty in the 32nd minute following Daniel Pudil's foul on Sam Ricketts.
The home side responded four minutes later when on-loan Udinese striker Vydra eased past Bolton's defence to stroke home from 10 yards out, and the winner arrived 20 minutes from time when Almen Abdi stroked the ball into the bottom corner of Adam Bogdan's goal.
It was Watford striker Deeney who almost put his side in front after just 11 minutes when he beat Bolton's offside trap only to see his 18-yard strike saved by the legs of Trotters goalkeeper Bogdan.
The visitors then turned defence into attack and were awarded a penalty in the 32nd minute when defender Ricketts was brought down in the box by Pudil.
Sordell struck low and hard from the spot to give his side a 1-0 lead over his former employers.
Gianfranco Zola's men equalised just four minutes later when Cristian Battocchio flicked the ball forward to Vydra who dummied before skipping past the defender to slot home from the centre of the penalty area.
Watford then piled the pressure on their opponents, who managed to hold them off to keep it 1-1 going into the break.
Watford had the best of the chances in what was a largely scrappy second half.
Eventually the home side's pressure told as Abdi gave them the lead in the 70th minute from the edge of the area after a sustained spell of possession.