Middlesex made one last effort to get back into the promotion shake-up with a headlong charge to wipe out Worcestershire's first innings advantage of 85.
Andrew Strauss and Robin Weston raced to 66 by the 10th over, when Weston was stumped off Matt Rawnsley, and the scoring rate held at five-an-over as they reached 152 for 2. Strauss completed his second half-century of the match in establishing a modest lead of 87
With Warwickshire taking maximum bonus points at Derby, Middlesex can only try to set up some kind of target for Worcestershire on the last day - and then hope for the best.
They were forced into this position by the home side's determination not to waste a career-best 168 from opener Anurag Singh. The former Cambridge University captain resumed on 103 and passed 1,000 runs in a season for the first time before he was caught behind off Chad Keegan.
There was just a glimmer of hope for Middlesex when Worcestershire's newly-installed player of the year, Andy Bichel, sliced Keegan's next ball to cover point, but teenager Kadeer Ali settled into a stand of 52 with Steve Rhodes.
Kadeer, reaching double figures for the first time in 11 Championship innings, was caught at cover for 38 as Simon Cook and Tim Bloomfield shared the last four wickets but with more resistance from Matt Rawnsley and Chris Liptrot.
Middlesex had a mixed morning. Bloomfield made a breakthrough by dismissing Graeme Hick and Vikram Solanki in three balls, but David Leatherdale joined the imperious Singh in a partnership of 83 in 19 overs.
Middlesex vs WORCS
CricInfo Championship Division Two
England Domestic Season