Barnsley played the last 15 minutes with 10 men after Ryan Shotton was sent off for a foul on Lloyd Doyley.
But they held out for the victory to move just three points off the top six.
The star of the show was Filipe Teixeira, making his home debut after joining the Tykes on loan from West Brom.
The Portuguese midfielder was a constant menace and had a hand in Hallfredsson's 55th-minute strike.
Watford, by contrast, were missing their own loan star and main midfield threat Tom Cleverley after the Manchester United youngster failed a late fitness test.
Teixeira almost marked his first Oakwell appearance with a spectacular volleyed goal in the opening stages but the ball flew wide.
The hosts dominated possession in the first half but Watford were dangerous on the counter-attack, and Jon Harley put a header wide from Doyley's cross.
Arsenal loanee Henri Lansbury felt he should have had a penalty when he was felled in the Barnsley area but referee Fred Graham was not interested.
The lively Teixeira tried another couple of long-range efforts before the interval but did not manage to trouble Watford's England Under-21 goalkeeper Scott Loach.
Whatever Tykes boss Mark Robins said to his players at half-time did the trick as they looked a different team after the break.
They came close to opening the scoring in the 54th minute when Nathan Doyle let fly from 25 yards and rattled a post.
And 60 seconds later the deadlock was finally broken. Teixeira did well to keep the ball in play and found Andy Gray, whose pass sent Hallfredsson galloping through.
Hallfredsson rounded Hornets full-back Adrian Mariappa and blasted the ball past Loach, who got a touch but could not prevent it rolling in via the inside of the post.
The hosts were reduced to 10 men when Shotton was, perhaps harshly, shown a straight red card for bringing down Doyley.
They came close to doubling their lead in the closing stages when Gray raced through only to be denied by Loach.
And Tykes keeper Luke Steele secured three points for his side with a fine stoppage-time save from Lansbury.