Somerset 344 and 153 (Hildreth 64, Dunn 5-43) beat Surrey 231 (Patel 63, Foakes 57) and 164 (Burns 48, Brooks 5-33) by 102 runs
A thrilling burst of three wickets in seven balls by Jack Brooks propelled Somerset towards a 102-run victory against Surrey at Guildford that will fuel dreams in the West Country of a historic first County Championship title.
Surrey were bowled out for 164 in their second innings, losing eight wickets on the final morning in just over an hour and a half. It is Somerset's fourth win from five matches this season, and takes them to the top of the Division One table with a lead of 15 points over second-placed Hampshire.
Fast bowler Brooks removed nightwatchman Gareth Batty and then claimed the prized scalps of South African Test batsman Dean Elgar and England wicketkeeper-batsman Ben Foakes in a spell of 5-1-11-3 in the first 45 minutes of a final day that began with champions Surrey, at 99 for 2, needing another 168 runs to beat the team who finished runners-up to them last season.
Having slid to 120 for 5 as a result of Brooks' triple strike, which gave him overall figures of 5 for 33, Surrey then took further heavy blows from seamer Tim Groenewald, who bowled Scott Borthwick for 45 with his first ball and followed up by pinning Will Jacks leg-before in his second over.
Left-hander Borthwick, who started the day on 35 and had featured in a second wicket stand of 72 in 27 overs with his captain, Rory Burns, on the third evening to raise Surrey hopes, was undone by a superb ball which swung back into him. Jacks, who made 0, had no answer to a nip-backer.
It was swing, too, which Brooks found from the Railway End to undermine Surrey's chase in spectacular fashion. Batty, who had begun by edging Brooks safely past third slip for four and had gone to 14 by cover-driving Craig Overton for another boundary, was bowled aiming to pull a ball that was far too full for the shot.
Elgar was also bowled, off the inside edge for a third ball duck, as he tried to dig out a full delivery that curved back into him and Foakes, on 2, nicked a lovely away-swinger and was brilliantly caught low down by Marcus Trescothick at second slip.
Groenewald picked up a third wicket when Rikki Clarke drove at an outswinger and edged to keeper Steven Davies, who took a good tumbling catch in front of first slip, and the end was near for Surrey when Ryan Patel, having swatted Craig Overton over mid wicket for six to go to 27, wafted a catch to gully later in the same over as he tried to engineer a stroke to keep the strike.
It was all over at 12.34pm when Morne Morkel lofted Craig Overton straight to mid off to go for 2, giving the bowler figures of 2 for 59. Groenewald finished with 3 for 29. Somerset took 22 points, and Surrey 4.
"I just could not be prouder of the boys, and this was a massive win for us," said Tom Abell, Somerset's captain. "Surrey had eight Test players in their team and after yesterday I would probably have preferred to be in their position coming into today.
"But we said in the dressing room before play that if we bowled better than we did yesterday evening and started to build bowling partnerships then we could put them under pressure and that's exactly what we did. The bowling unit were outstanding today, and as captain you know that they will give you everything.
Surrey captain Rory Burns said: "Obviously it's very disappointing that we could not bat better today and get to that target, having bowled so well to get back into the match yesterday.
"There are lots of little things holding us back at the moment, and dropping Bartlett on 0 in the first innings clearly did not help us. That was a crucial moment in the context of this game,
"As a batting group, we are seeming to find ways of getting out and I think we did show at times that this was not an unplayable pitch. But, when you are the two batters out there, you have to seize that moment and build partnerships.
"We know we have to start getting things right, as a batting unit and as a team, but we are certainly not giving up on defending the title. We have played five matches, so there are nine games to go and we will be aiming to win all of them - that's the attitude we will take into the rest of the season, starting next week here at Guildford against Yorkshire."