Lewis McGugan put the Hornets ahead against the run of play after 36 minutes, but Chile international Jean Beausejour equalised before half-time at the second attempt.
And Wigan's winner came within 10 minutes of the restart, with Waghorn firing past Manuel Almunia into the bottom corner.
Having lost their eight-match winning streak in midweek after being held 3-3 by Yeovil, Wigan tore into their opponents from the off.
James McClean, recalled down the left-hand side, fired wide from a good position, while Waghorn nearly wriggled through only to lose control at the vital moment. Beausejour should have opened the scoring after a lovely ball from Jordi Gomez, but his shot was straight at goalkeeper Almunia.
McClean also fired against the goalkeeper when he might have done better, before the Latics went even close to an opener on 18 minutes.
Waghorn's corner from the right was a beauty, but Ivan Ramis' header was cleared off the line by the defender guarding the left-hand post.
Watford sounded a warning when Ikechi Anya's shot flew just past the post, with the same player again failing to hit the target after a swift counter-attack.
McClean forced another good save from Almunia, before narrowly failing to find Waghorn with another cross. Wigan would have been wondering how they were not ahead by this point, and that frustration would have been exacerbated when they fell behind nine minutes before the break.
McGugan was the man who broke the deadlock, with a firm shot from 12 yards that was too good for Ali Al Habsi.
The goal was certainly against the run of play, and Wigan were level within four minutes. Ramis played in Beausejour, who volleyed against Almunia before nodding the rebound past the grounded goalkeeper.
And the home side were in front 10 minutes after the restart - with more than a hint of good fortune attached to it. James McArthur's scuffed shot found its way to Waghorn, who turned and rifled home from just inside the box.
Gomez could have made the game safe only to drill over the top, before Beausejour's hooked cross-shot drifted just beyond the far post.
With nothing to lose, Watford made a game of it in the final quarter, and had a couple of good chances to equalise. A good run by Daniel Pudil led to Anya pulling his shot wide of the upright. But the Hornets knew it was not going to be their day when Anya got the wrong side of substitute Thomas Rogne, only to pull his shot badly wide of the mark.