The game started at a slow pace with neither team creating a clear-cut opening. However, after eight minutes that all changed as Derby took the lead.
The goal came when Chris Martin crossed and Jamie Ward rose to head into the top corner.
The away side's joy was short-lived, however, as just four minutes later Fernando Forestieri latched onto a through-ball and clipped it over Lee Grant.
Joel Ekstrand had a chance to put Watford in the lead but his shot from outside the box drifted wide.
Lewis McGugan also went close but fired over the bar from the edge of the box, before Daniel Pudil headed over.
Ward, however, made them pay for those missed chances when he tapped home just before the break.
It was almost three for the Rams at the start of the second half, but Craig Bryson's shot fizzed just wide.
Ward then missed a chance for his hat-trick before McGugan curled a free kick well over the bar.
However, the former Nottingham Forest player did pull his side level with just over 20 minutes left when he curled a 25-yard shot into the top corner.
Conor Sammon had a great chance to put Derby back in the lead but Manuel Almunia made the save.
The striker was not be denied, however, as he won the game for Derby, thrashing the ball home from Will Hughes's pass.