Liam Dawson defiantly scored his first County Championship century for three years to put the buffers Somerset’s title charge.
All-rounder Dawson saved Hampshire from an embarrassing first-innings total having arrived at the wicket with the hosts toiling on 18 for four.
The World Cup winner almost singled-handily batted Hampshire into a strong position with his 103 from 156 balls, taking his side to 196 all out.
It was his eighth first-class hundred for Hampshire and first since notching 116 against Warwickshire in July 2016 – interestingly, five of his tons for the county have now come in September.
Somerset took three bonus points from the day in their bid to beat Essex to the title, which would be the first in their history. They went into the penultimate round of fixtures with an eight-point advantage over the 2017 champions at the top of the table.
James Vince won the toss decided to bat on a very green-topped pitch.
In the next 12 overs that appeared to be a curious decision as Hampshire crumpled to 24 for five – with Lewis Gregory and Josh Davey sharing the five scalps.
It took just three deliveries for Gregory to make his first breakthrough, as Felix Organ edged to first slip while trying a back-foot drive.
Tom Alsop was bowled by a delightful delivery from Davey, which shaped in and then nipped away before Sam Northeast was brilliantly caught by Roelof van der Merwe at gully.
Vince and Ian Holland also departed to Gregory, whose seven morning overs returned three for 24 before ending with an analysis of three for 63, the former while attempting a straight drive and the latter caught at second slip.
Aneurin Donald left Hampshire 57 for six when he was caught off Davey, before Lewis McManus departed soon after lunch when he was snaffled at point.
At 88 for seven, the home side were facing a sub-100 total but Dawson and Keith Barker put on 92 to even the game back up.
Dawson picked up on anything too straight to flick through the leg-side, with all but 26 of his runs coming on the on-side.
He brought up his fifty with a pull to the boundary from 90 balls.
Dawson accelerated slightly towards three figures with the only six of the day coming in the 53rd over with a powerful pull.
The three-Test player arrived at his century in 154 balls with a sumptuous straight drive.
Barker had supported him well with a well-made 40 from 76 balls before both departed in back-to-back overs.
Barker departed lbw to Dom Bess before Dawson made his first mistake when he edged Tom Abell behind – the Somerset skipper quickly wrapped up the innings two overs later when he castled Fidel Edwards.
Like Hampshire earlier, Somerset struggled against the moving led new ball to end the day on 30 for two – with Kyle Abbott picking up both wickets.
The South African had Murali Vijay for a nine-ball duck before bowling Steve Davies to post two for one from six overs before a series of bad light interruptions eventually curtailed the day.