Rogers guides Derbyshire forward
Chris Rogers lead from the front for Derbyshire with a half-century after Middlesex seamer Tim Murtagh had celebrated his 50th victim of the LV County Championship Division Two season.
Murtagh removed Paul Borrington early as the home side replied to Middlesex's 306 but Rogers scored an unbeaten 59 in his first innings since replacing Rikki Clarke as captain.
The Australia Test batsman made his ninth championship 50 of the campaign to guide Derbyshire to 128 for three at the close - 178 behind - after Murali Kartik had taken two wickets in three balls.
Middlesex had needed some stubborn resistance from the tail to get them to a third batting point after wickets had again been thrown away.
Dawid Malan started the second day in hospital having an X-ray on a bruised forearm but was able to resume his innings following a promising first-class debut by Dan Housego.
The 19-year-old showed good judgement to help Ben Scott take the total to 171 before a needless run out halted Middlesex's progress.
Scott went for a third to deep midwicket that was never on and was beaten by Graham Wagg's throw when he was sent back by Housego.
Middlesex had just banked their first point when Housego missed a drive at Jon Clare and was bowled for 23 - but Derbyshire's fielding let them down again when Gareth Berg on five edged the seamer between first and second slip.
Berg advanced unconvincingly to 26 before he skied a pull at Wavell Hinds just before lunch and Malan also fell to a poor shot when he pulled the West Indian straight to mid-on.
However 20 from Murtagh and an unbeaten 33 by Kartik took Middlesex past 300, although the visitors would have been defending a lower total if Derbyshire had not missed five chances.
Middlesex were also in a charitable mood after Murtagh made the early breakthrough by having Borrington caught at first slip for six in the seventh over of Derbyshire's reply.
Birch should have followed for 11 when he drove at Murtagh but this time Kartik failed to lay a hand on the ball and he was left to regret that miss when Birch drove the Indian slow left-armer for six.
Rogers was given a life on 27 when Ed Joyce dropped him at gully off Dan Evans and the second wicket stand was starting to look ominous for Middlesex when Kartik broke through.
Birch was bowled for 39 trying to drive and Hinds was trapped lbw second ball for two as he pushed half forward.
But Rogers and Greg Smith survived the last 15 overs to leave the game evenly poised with two days left.
