Graeme Swann grabbed five wickets to bowl England into a commanding position in the opening Test against Bangladesh on Sunday.
The off-spinner finished with five for 90 as the host was bowled out for 296 in its first innings in reply to 599 for six declared.
England, which did not enforce the follow-on, was 131for five in its second innings at stumps on the third day for an overall lead of 434.
The tourists lost skipper Alastair Cook (39), debutant Michael Carberry (34), Kevin Pietersen (32), Jonathan Trott (14) and Paul Collingwood (three).
The 25-year-old Cook became the second-youngest batsman after India's Sachin Tendulkar to complete 4,000 Test runs during his 55-ball knock.
“The follow—on was discussed, but we felt this was the best way to win the game,” said Swann. “We are 430 ahead after three days. We lost a couple of wickets at the end which isn't ideal, but with two days to play I think we're in the box seat.
“It was hard work today. The pitch was not really responsive but I kept plugging away in the hope that if I got one, another might follow and so it proved.
Mushfiqur Rahim (79) and Naeem Islam (38) earlier put on a record 113 for the eighth wicket before England ended Bangladesh's late fightback with three wickets off four balls.
Bangladesh's previous best for the eighth wicket in Tests was 87 between Mohammad Ashraful and Mohammad Rafique against the West Indies at Gros Islet in 2004.
Wicket-keeper Rahim and Naeem frustrated England with their defiant knocks but the tourists managed to break the stand, thanks to brilliant fielding by Carberry.
His accurate throw from the deep to wicket-keeper Matt Prior found Naeem short of the crease as the batsman attempted a second run. Swann then ended the innings when he took the last two wickets off three deliveries.
Rahim fell to a superb one-handed catch by substitute James Tredwell at short mid-wicket after cracking 15 fours, while last—man Rubel Hossain was bowled for no score.