Spinner Moeen Ali removed both Imrul Kayes and Mominul Haque in the same over, but Tamim Iqbal and Mahmudullah have kept the Tigers going after England's first innings total of 293.
Tamim (53) has hit his 19th Test fifty while Mahmudullah is on 34 as Bangladesh now have 111 for 2, trailing by 182 runs.
At the beginning, Imrul and Tamim looked well in control, making 29, but Ali then came to cause the trouble. The hosts went to lunch with 29 for 2, as Ali bagged the brace without conceding one single run.
Earlier in the morning, Taijul Islam struck twice while Mehedi Hasan Miraz bagged another wicket to net a six-for on debut as England were all out for 293.
England started Friday, the second day of the match, with 258 for 7 and Taijul picked the wicket of Chris Woakes (36) with the first ball of the day.
Taijul then made Adil Rashid, who made 26, give a catch to Sabbir Rahman while Miraz got Chris Broad (13) caught behind to end the English innings.