Somerset powered to just their second LV= County Championship Division One win of the season inside three days to dent Middlesex's title hopes at Lord's.
The men from the West Country moved out of the relegation places after bowling Middlesex out for 106 and 164 in reply to their first-innings 449.
Resuming on their parlous overnight state of 52-2 and already following on, Middlesex suffered a further hammer blow to their title aspirations when they lost leading-scorer Sam Robson to Lewis Gregory off the 16th ball of the third day.
Needing 343 simply to make the visitors bat for a second time, Middlesex had mustered 85 when Marcus Trescothick swooped for a second time in the morning to account for Dawid Malan - moments after the left-hander had notched his 5,000th run in first-class cricket.
Soon after John Simpson (nine) suffered a luckless run out when Neil Dexter's firm, straight drive was tipped onto the non-striker's stumps by Craig Meschede with Simpson still out of his ground when backing up.
Meschede was replaced at the Nursery End by England prospect Jamie Overton who struck with only his second ball by bowling Gareth Berg for a duck with a rapid yorker to make it 102-6.
Trescothick was called into action again in the 35th over, snaffling an overhead chance once again at second slip after Ollie Rayner's airy waft outside off against Alfonso Thomas to send the hosts into lunch on 148-7.
In the sixth over after the resumption James Harris (22), playing back in defence to a lifting delivery from Gregory, was unable to keep the ball down and it ballooned off the splice to be caught by the bowler following through.
Trescothick bagged his fifth catch in the cordon from a Tim Murtagh slash drive then, four balls later, last man Ravi Patel lost his off stump to a yorker to end the game 20 minutes after lunch and give Gregory deserved career-best figures of 5-38 - his maiden five-wicket haul in first-class cricket.
Somerset first four-day victory at Lord's since 1983 moves them out of the relegation berths with a 23-point haul while Middlesex banked only two points for their miserable display.