The match got off to a pulsating start with both sides scoring inside the opening 12 minutes, Fernando Forestieri equalising after Jamie Ward's opener.
Ward restored Derby's lead in first-half injury-time and, though Watford levelled again through Lewis McGugan, Sammon had the final word.
Essaid Belkalem put the game's first opportunity wide when he headed a McGugan corner down and beyond the far post.
Derby struck first in the eighth minute when Craig Bryson sent over a cross from the left and Ward got the better of Joel Ekstrand to plant a header past the helpless Manuel Almunia and into the top corner.
But the lead was to prove short-lived as in the 12th minute, Watford took a free-kick in midfield quickly and Lewis McGugan's defence-splitting pass was latched on to by Forestieri, who dinked the ball over the advancing Lee Grant to score for the second game running.
Chances were then limited for the remainder of the first half but the Hornets had the better of them as Daniel Pudil headed a Marco Cassetti cross over the bar before Diego Fabbrini, who had replaced the injured Troy Deeney in the starting line-up, fired narrowly wide of Grant's near post from the edge of the penalty area.
The Hornets had been the better side in the opening period but their tendency to concede possession through their own sloppiness was punished in first-half injury-time when Iriney gave away the ball and Chris Martin and Bryson combined to set up Ward with a simple tap-in for his second of the game.
Derby had a couple of chances at the start of the second period with Tottenham loan signing Simon Dawkins, who had been introduced at the break, shooting over before Ward forced Almunia to save with his legs.
Watford were soon pushing for an equaliser and they were twice awarded free-kicks in good positions around 20 yards out but on both occasions McGugan's efforts went over.
Substitute Sean Murray went closer when he forced Grant to dive to his left to parry a stinging left-foot drive but in the 68th minute the Hornets did pull level in superb fashion.
McGugan received the ball midway inside the opposition half and after exchanging passes with Pudil, the former Nottingham Forest midfielder took aim and curled an excellent 20-yard effort beyond Grant and into the far corner.
The stage looked set for Gianfranco Zola's men to go on and make it five wins from six games but they were fortunate to escape when Belkalem failed to deal with a long ball and substitute Sammon was through one-on-one but Almunia saved with his legs.
The warning was not heeded though, and two minutes from time Will Hughes slipped the ball through to the replacement and this time he made no mistake as Derby took the lead for a decisive third time.