Onions furthered his England ambitions by finishing with figures of seven for 62 to restrict Middlesex to a 25-run first-innings lead after they were bowled out for 168 on day two of this low-scoring encounter.
Yet Durham's batting line-up proved to be their weak link once again as they followed up 143 first time around with a paltry 171 in the second innings - with Tim Murtagh, Steven Finn and Ollie Rayner all picking up three wickets - which left Middlesex a victory target of 147.
While Chris Rushworth and Onions each took a wicket to leave the hosts on 41 for two, Voges (36 not out) and Morgan (24no) helped Middlesex close on 103 without further loss. They will need just 44 runs for victory on Sunday.
Liam Plunkett's four-wicket haul helped Championship leaders Yorkshire seize the initiative against defending champions Warwickshire at Headingley.
After the White Rose were all out for 302, former Durham seamer Plunkett ran through Warwickshire's middle order, which included the wicket of danger man Laurie Evans, who fell 12 runs short of a century.
There were plenty of starts in the visitors' batting ranks, with three players passing 20 but no-one capable of going past 24 to undermine Warwickshire's efforts as they closed on 221 for eight - still 81 runs in arrears.
Captain Wayne Madsen led the way with a battling 97, while Peter Burgoyne contributed 62 not out down the order to lift Derbyshire out of a predicament against Sussex at Hove.
At 139 for six and still trailing by 175 runs, Derbyshire's hopes looked bleak but Madsen and Burgoyne put on 78 for the seventh wicket before the visitors were eventually all out for 274 in response to 314 by Sussex, who closed on 11 for one in their second innings.
Only 37 overs of play were possible on day two of Somerset's Division One clash against Nottinghamshire at Taunton due to rain.
Umpires Steven Garratt and Tim Robinson brought proceedings to a premature end at 4pm after Somerset had overcome the early loss of captain Marcus Trescothick to reach 70 for one, still 308 runs in arrears.