Opener Tamim Iqbal led Bangladesh's fightback with a dogged 78 after the hosts had got off to a wobbly start in reply to England's first innings 293 on the second day of the opening Test on Friday.
At stumps the match was delicately poised with Bangladesh on 221 for five, trailing England by 72 runs, with all-rounder Shakib Al Hasan (31) and nightwatchman Shafiul Islam (zero) at the crease.
England captain Alastair Cook called on Moeen Ali, who top-scored for his side with 68, to bowl the final over of the morning and it took the bearded 29-year-old just two deliveries to break Bangladesh's opening stand.
The openers had looked untroubled until then but Moeen got the ball to spin past Imrul Kayes' bat to hit the off-stump before number three Mominul Haque edged behind without scoring to leave Bangladesh reeling on 29-2.
The hosts almost went through the second session unscathed after Moeen's threat diminished on a baking afternoon with Tamim and Mahmudullah defending resolutely to keep England at bay at the Zahur Ahmed Chowdhury Stadium.
Bangladesh lost Mahmudullah (38) to leg-spinner Adil Rashid on the stroke of the tea interval but not before he had shared in a vital third-wicket partnership of 90 with Tamim.
The left-handed Tamim was given out caught at slip off Moeen but as on numerous occasions already in the match, he managed to get the umpire's decision overturned on review. Replays showed the ball has missed the edge of his bat.
He was finally out caught behind to off-spinner Gareth Batty who is playing his first Test in more than 11 years.
Bangladesh egded towards England's total as captain Mushfiqur Rahim (48) and Shakib dug in but Ben Stokes had Mushfiqur caught behind by wicketkeeper Jonny Bairstow near the close of play to leave the game evenly balanced.
England had earlier resumed on 258-7 and added 35 runs before debutant off-spinner Mehedi Hasan completed a six-wicket haul with the dismissal of Stuart Broad after left-arm spinner Taijul Islam had removed Chris Woakes and Rashid.
England 1st innings (Overnight: 258-7)
A. Cook b Al Hasan 4
B. Duckett b M. Hasan 14
J. Root c Sa. Rahman b M. Hasan 40
G. Ballance lbw b M. Hasan 1
M. Ali c Rahim b M. Hasan 68
B. Stokes b Al Hasan 18
J. Bairstow b M. Hasan 52
C. Woakes c M. Haque b T. Islam 36
A. Rashid c Sa. Rahman b T. Islam 26
S. Broad c Rahim b M. Hasan 13
G. Batty not out 1
Extras (b-14 lb-4 w-2) 20
Total (all out, 105.5 overs) 293
Fall of wickets: 1-18 B. Duckett,2-18 A. Cook,3-21 G. Ballance,4-83 J. Root,5-106 B. Stokes,6-194 M. Ali,7-237 J. Bairstow,8-258 C. Woakes,9-289 A. Rashid,10-293 S. Broad
Sh. Islam 9 - 1 - 33 - 0
M. Hasan 39.5 - 7 - 80 - 6
K. Rabbi 8 - 0 - 41 - 0(w-2)
S. Al Hasan 19 - 6 - 46 - 2
T. Islam 24 - 11 - 47 - 2
Sa. Rahman 3 - 0 - 11 - 0
Mahmudullah 2 - 0 - 17 - 0
M. Haque 1 - 1 - 0 - 0
Bangladesh 1st innings
T. Iqbal c Bairstow b Batty 78
I. Kayes b Ali 21
M. Haque c Stokes b Ali 0
Mahmudullah c Root b Rashid 38
M. Rahim c Bairstow b Stokes 48
S. Al Hasan not out 31
Sh. Islam not out 0
Extras (lb-4 w-1) 5
Total (for 5 wickets, 74 overs) 221
Fall of wickets: 1-29 I. Kayes,2-29 M. Haque,3-119 Mahmudullah,4-163 T. Iqbal,5-221 M. Rahim
S. Broad 8 - 2 - 12 - 0
G. Batty 17 - 1 - 51 - 1
C. Woakes 7 - 2 - 15 - 0(w-1)
A. Rashid 13 - 1 - 51 - 1
M. Ali 19 - 2 - 66 - 2
B. Stokes 8 - 3 - 17 - 1
J. Root 2 - 0 - 5 - 0.