Australia international Trent Copeland tore through Worcestershire's batting to put Northamptonshire on the brink of victory after two days of their Division Two fixture at Wantage Road.
Northamptonshire were bowled out for 314 during the afternoon, giving the Division Two leaders a first innings lead of 118, with Steven Crook hammering 85 off as many balls including three huge sixes.
Copeland, who is playing his last match before returning home, then took three wickets for 26 as Worcestershire subsided to 97-6 at the close, still 21 runs behind.
The hosts began the day on 100-4, 96 runs behind their opponents, with Rob Keogh resuming on 26 and Andrew Hall beginning his innings.
But Hall was only able to make 10 before Gareth Andrew took a good low catch at third slip to give Alan Richardson his fourth wicket in the seventh over of the day.
Keogh was to move on to 44 but was denied a maiden half-century in first-class cricket when he edged Andrew to Moeen Ali at first slip to leave the hosts on 134-6.
Crook was then given a massive let-off on six when he launched Andrew into the air only for Aneesh Kapil to drop a straightforward catch at deep square leg.
He was to make Kapil pay for that blunder by blasting a half-century off just 52 balls as he and James Middlebrook added 96 between them for the seventh wicket.
Trailing by 118, Worcestershire lost their captain Daryl Mitchell for just eight in the penultimate over before tea when he left Crook's delivery only to see his off stump sent spinning.
Matthew Pardoe was then dismissed for 24 when he nudged Willey to Murphy before Copeland pinned Sri Lanka batsman Thilan Samaraweera lbw for four.
Copeland then repeated the trick on Alexei Kervezee (1) and Kapil (four) was caught leg before by Willey before wicketkeeper Michael Johnson (two) became yet another lbw victim to Copeland.
Ali and Andrew then survived the final 10 overs and will resume day three on 29 and 16 respectively with their side surely doomed.