Paceman Toby Roland-Jones claimed the first 10-wicket haul of his career as Middlesex clinched a tense five-wicket win at New Road which leaves Worcestershire's LV= County Championship Division One status hanging by a thread.
The 24-year-old finished with match figures of 10-118 to leave his side with the task of scoring 204 in 47 overs for victory, which they achieved with 11 balls to spare.
It was Middlesex's fourth Championship win of the season which enabled them to complete the double over Worcestershire, who are now 19 points from safely with just two games remaining.
Resuming the final day 61 runs ahead on 44-3, Worcestershire slumped to 186 all out as only Alexei Kervezee (64 not out) offered some resistance for the hosts.
Middlesex lost captain Chris Rogers early in their run chase and needed a further 177 after tea to complete a dramatic victory.
Sam Robson and Joe Denly went on to complete a half-century partnership before Gareth Berg (26 not out) and Neil Dexter (15 not out) pressed the accelerator to see the visitors home.
Neil Dexter and Sam Robson scored half-centuries as Middlesex scored 306 in reply to Worcestershire's 323 in the weather-hit County Championship Division One match at New Road.
By the close the hosts led by 61 on 44-3 after losing first innings century-maker Daryl Mitchell, Phil Hughes and Moeen Ali.
Middlesex resumed the day on 49-0 but paceman Alan Richardson claimed three wickets in successive overs, removing Chris Rogers, Joe Denly and Dawid Malan.
Richardson's impressive treble left Middlesex on 61-3 before Robson and Dexter steered Middlesex to 140-3 off 44 overs.
Robson, dropped the previous evening on 21, finally fell after hitting 11 fours off 157 balls while Robson perished when he dollied up a catch to Matt Pardoe at forward short leg off spinner Moeen.
Paceman Gareth Andrew trapped Adam Rossington lbw before Gareth Berg was caught at first slip by Moeen off Chris Russell, breaking up his 60-run partnership with Dexter.
Dexter finally departed after hitting 12 fours off 190 balls before Richardson ousted Toby Roland-Jones before Russell saw off Steven Crook and Tim Murtagh after the last two Middlesex wickets had yielded 41.
Middlesex made a positive start to their reply to relegation-threatened Worcestershire's 323 in the rain-ravaged match at New Road.
At stumps they were 49-0 from 13 overs after a frustrating day two when persistent heavy rain during the morning, plus further outbreaks after lunch, meant play was unable to start until 4.30pm following extensive mopping-up operations.
Worcestershire resumed in front of a handful of spectators on 295-8 off 96 overs. Skipper Daryl Mitchell, on 129 overnight, and Chris Russell quickly pushed the hosts on to 300 to enable them to pick up a valuable third bonus point.
Russell moved on to 14 before he fell victim to a smart catch at first slip by Dawid Malan off paceman Toby Roland-Jones, who finished with 5-72.
Last man Alan Richardson chipped in with 18 before he was bowled by Tim Murtagh to leave opener Mitchell unbeaten on 133 with 13 fours off 323 balls.
Middlesex launched their innings against pacemen Richardson and Russell with opener Chris Rogers soon collecting the 15 runs he required to complete 1,000 first-class runs for the season.
When further rain sent the players back to the pavilion shortly after 1800 he was unbeaten on 17, with Sam Robson on 27 not out during a day when the grim weather allowed only 19.3 overs to be bowled.
Daryl Mitchell hit a welcome century for Worcestershire in their LV= County Championship Division One match against Middlesex at New Road.
Skipper Mitchell made 129 not out to help lift his relegation-threatened side to 295-8 off 96 overs at stumps.
It was his second Championship century of the season and came off 273 balls with nine fours.
He put on 114 in 38 overs for the fourth wicket with Alexei Kervezee, who made 55 on his return to first team action for Worcestershire - who dropped Surrey-bound Vikram Solanki and wicketkeeper Ben Scott for this contest.
Shortly after tea the hosts picked up the first of two precious bonus points before Joe Leach was yorked by Steven Crook.
Young wicketkeeper Ben Cox, making his first Championship appearance for Worcestershire for 16 months, was then removed by Murtagh before Mitchell completed the 12th first-class century of his career in nearly five-and-a-half
Middlesex's most productive bowler was paceman Toby Roland-Jones, who finished with 4-67.
Roland-Jones took his wicket haul to four by ousting Gareth Andrew to leave Mitchell to end a fruitful day with 13 fours off 306 balls.