This was a scrappy game played out mostly in midfield. United went close early on when Town keeper Steve Pomeroy flapped at Paul York's far post corner and Hercules' header was cleared off the line by John Loveridge.
United eventually took the lead in the 29th minute when Harthill beat full back Micky Rich and his whipped cross to the far post cleared the goalkeeper and defender Andy Foote before finding Cliff Campbell who headed home from close range for his 21st goal of the season.
Dudley equalised in the 36th minute when York missed a header in his own box (despite appearing to be fouled) and Phil Nicholls cracked a shot through a forest of legs and past Ducks' keeper Keith Baker into the corner of the net.
In the 40th minute Kevin Pope took a swing at United's David Botterill off the ball. Although missed by the referee, the linesman spotted the offence and after a brief consultation Pope was dismissed.
The winner arrived in the 73rd minute a lovely ball from Harthill sent substitute Derek Duggan away down the right. His cross was deftly knocked back by Campbell to Harthill whose shot beat everyone on its way including Rich whose touch only helped the ball into the net.