Overcast conditions offered just enough late movement for the pair, who exploited the Australian batsmen's vulnerability against the swinging ball.
Australia, who had been 126 for one overnight, collapsed in spectacular style with both Anderson (five wickets for 80 runs in 24 overs) and Onions (four for 58 in 16.4) taking their Ashes Test-best figures.
England captain Andrew Strauss, whose 161 helped propel the hosts to a 115-run second Test win at Lord's, consolidated the seamers' work with another fine innings of 64 not out before bad light forced an early close.
At stumps, England, 1-0 ahead in the series, were 116 for two, a deficit of 147, with Ian Bell, returning to Test cricket on his Warwickshire home ground after Kevin Pietersen was ruled out with an Achilles injury, unbeaten on 26.
But Bell was fortunate not to fall lbw to Mitchell Johnson on 18. It looked as if the struggling left-arm quick, whose eight series wickets before this match had cost an expensive 41 runs apiece, had bowled the perfect inswinger.
But South Africa umpire Rudi Koertzen, who gave some key decisions against Australia at Lord's, ruled in favour of the batsman with replays suggesting the sound of Bell's bat clipping the pad may have misled the veteran official, standing in his 101st Test.
Strauss took some of the pressure off by continuing to drive and square cut strongly before Bell delighted his fans by clipping Peter Siddle off his legs for four.
Bell, who can cut a nervous figure at the crease, then went down the pitch to loft off-spinner Nathan Hauritz straight for the first six of the match.
Strauss, looking in prime form, meanwhile completed a 92-ball fifty including eight fours.
England enjoyed a spectacular start Friday with Onions taking two wickets with the day's first two balls.
Australia resumed with makeshift opener Shane Watson 62 not out while Australia captain Ricky Ponting was unbeaten on 17, needing just eight more to surpass Allan Border as his country's leading Test run-scorer.
Watson could not add to his overnight score when he was lbw to Durham quick Onions.
Next ball Michael Hussey was bowled off-stump after the left-hander deliberately offered no stroke to a ball that swung in a touch.
Australia were now 126 for three and Onions, who looked decidedly unthreatening while bowling three overs for an expensive 21 runs on Thursday, was on a hat-trick but new batsman Michael Clarke evaded a short ball.
Meanwhile, Ponting's three off his legs against Andrew Flintoff saw him surpass Border's record of 11,174 runs and moved him up into third place in the all-time list of Test run-scorers behind Sachin Tendulkar (12,773) and Brian Lara (11,953).
But, on 38, Ponting feathered an attempted hook off a well-directed short ball from Onions through to wicket-keeper Matthew Prior.
Anderson then, as Onions had done, struck twice in two balls to spark a spell of five wickets for 13 runs in 38 balls.
Left-hander Marcus North edged and was caught one-handed by a diving Prior, who took the left-handed chance from in front of Strauss at first slip.
Anderson, whose overnight figures were an unimpressive 10 overs for 45 runs, then had Johnson, caught on the crease, lbw, on his way to a Friday return of five for 35 in 14 overs.
Australia's last two wickets though added 60 runs before Onions, who had two catches dropped off his bowling, ended the innings by having Hilfenhaus caught in the gully.
Source: AFP Global Edition