England captain Andrew Strauss became the first batsman past 300 runs for this Ashes series as he strengthened the hosts' dominance over Australia at Edgbaston.
Strauss struck an unbeaten 62 in England's 106 for two on the second day of the third npower Test after Australia collapsed to 263 all out.
James Anderson and Graham Onions both returned Ashes-best figures of five for 80 and four for 58 respectively to make up for an under-par opening to the match.
Durham fast bowler Onions set the tone with three morning wickets, including two from the first two balls of the day, and then wrapped things up after a stubborn 10th-wicket stand between Ben Hilfenhaus and Nathan Hauritz.
Hilfenhaus sliced straight to gully for 20, his highest Test score, to leave Onions with four for 58.
Onions set the tone with three early wickets and Anderson produced a remarkable spell of four for four as the Australians slumped to a lunch score of 203 for eight.
Both men found themselves on hat-tricks but could not complete the feat despite the roars of the notorious Edgbaston crowd.
England lost Alastair Cook early on and Ravi Bopara after tea but Strauss followed his big hundred at Lord's with another fine innings.
Recalled Warwickshire batsman Ian Bell, in for injury victim Kevin Pietersen, was given a life when the out-of-touch Mitchell Johnson was denied what appeared a straightforward leg-before dismissal.
Bell, on 18, was struck by a fullish delivery which seemed to be on its way to hit middle and off stumps.
However, England were able to return to the safety of the dressing room when bad light was offered at 5.45pm with the score 116 for two.