Manchester:England took charge of the second test at Old Trafford on Saturday as Bangladesh lost all 10 wickets between tea and the close of play to finish on 216 all out on the second day.
Despite a magnificent 108 from Tamim Iqbal that included 11 fours and one six, a disastrous evening session by Bangladesh after reaching 96-0 at tea handed England the initiative, Graeme Swann taking 5-76 and newcomer Ajmal Shahzad 3-45.
It left Bangladesh four runs short of the follow-on target at stumps. England captain Andrew Strauss has until 10 minutes before the start of play at 1000 GMT on Sunday to decide whether or not to enforce the follow-on.
"I don't think we expected 10 wickets to fall in a session," Swann said. "I can't remember that happening in my career."
It was Swann's first five wicket haul in England, having achieved the feat six times abroad, and he said he was relieved to be bowling on a surface that helped the spinners, having had a tough time when England won the first test at Lord's.
"I'm delighted," he said. "I'd rather have a hole in my head than bowl on that (Lord's wicket) again. You've won, but you drive away feeling you've not contributed."
Earlier Saturday, Ian Bell was out for 128 and Matt Prior 93 as England made 419 in its first innings, Bangladesh captain Shakib Al Hasan taking 5-121.
Bell's innings, which lasted 255 balls, included 12 fours and one six, while Prior hit nine fours from 170 balls.
England began Saturday's morning session on 275-5 and Bell, who started the day on 87, took just 18 minutes to reach his century.
Bell was bowled by Shakib 15 minutes before lunch, and Swann was lbw to spinner Abdul Razzak for 20 with the last ball of a frustrating session for the bowlers.
After Bangladesh gave the new ball to Razzak, Bell cut the final ball of his opening over through point for three, to complete his third century against Bangladesh _ and his 11th in test matches.
Prior, who had lived dangerously on Friday, had another narrow escape when he hooked Shafiul Islam to midwicket, just short of Mahmudullah. Prior survived to complete a century stand with Bell and reach his 50 from 106 balls, including five fours.
Prior's confidence grew and, in the 101st over, he reverse swept Razzak for four through point, before bringing up the 350 with a drive through mid on for four from the next delivery.
The duo's stand of 153, an England record for the sixth wicket against Bangladesh, finally ended when Shakib bowled Bell with a sharply turning off break.
Swann immediately went on the attack and played an entertaining cameo innings of 20 from 17 balls, before he was trapped lbw by Razzak with the final ball of the session.
England resumed on 399-7 after lunch, but Shakib mopped up the tail with a spell of three wickets from 13 balls.
Shahzad made just five before he was caught at cover point by Razzak and Prior fell tantalizingly close to his century when he tried to reverse sweep Shakib and was smartly caught by Jaharul Islam at backward square leg.
Two balls later, Shakib ended the innings, trapping Steven Finn lbw for 0.
Bangladesh made a blistering start to its innings, with Tamim and Kayes piling on the runs before tea.
Their opening stand of 126 was finally broken in the fifth over of the evening session, when Kayes top-edged a bouncer from Finn to Shahzad at fine leg and was caught for 36.
Having reached his 50, from 43 balls, with a towering six over long on off Swann, Tamim brought up his century off exactly 100 balls with an uncharacteristically ugly shot off the bottom of his bat for four off the same bowler.
However, four balls later Swann claimed his first wicket of the series when he had Junaid Siddique caught behind by Prior for one run.
Having batted relatively conservatively to reach his century, Tamim began to take risks and he finally departed after edging a James Anderson delivery to Prior.
"Personally, it was great to get a hundred, but the team matters," Tamim said. "We didn't play well after a solid start so I'm not that happy. Everyone is really disappointed."
Jaharul Islam lasted just 14 balls before Swann bowled him for five and Swann then had Shakib caught for 10 by Anderson at first slip.
Shahzad claimed his first test wicket when Mohammad Ashraful slashed a delivery straight to Eoin Morgan at backward point and was caught for 11.
Seven balls later Shahzad ripped out Mahmudullah's middle stump, dismissing him for eight and in his next over he bowled Shafiul Islam for four, for his third wicket in 16 deliveries.
Mushfiqur was caught by Anderson off Swann, who then had Shahadat Hossain lbw for 0.