Watson, deputising for injured Hampshire captain and Australian leg-spinner Shane Warne, saw his century become the cornerstone of Hampshire's second innings 334 for nine declared which left visitors Somerset with 422 to win.
But the west country club, without injured pace bowlers Keith Parsons and Richard Johnson who were also unable to bat, crashed to 146 all out.
Hampshire started the day on 119 for five in their second innings, a lead of 206, with both Watson and Dimitri Mascarenhas carrying injuries.
But the match turned when Watson, who had a hamstring injury and was batting with a runner, was joined by Shaun Udal in an eighth-wicket stand.
Hampshire stand-in skipper Udal made 74 and put on 158 at more than five an over with Watson. Watson, 23 earlier this week, hit England fast bowler Andy Caddick for six and 16 fours.
Hampshire seamers Chris Tremlett (three for 43) and Billy Taylor (three for 38) ran through the Somerset top order and the match ended when, one ball into the extra half hour, Keith Dutch was out for 60.
As neither Parsons nor Johnson could bat Somerset's 146 for eight became 146 all out and Hampshire had their fifth win of the season.