|Debutant Jahirul Islam ends Bell's innings with a catch off Shakib [AFP]
Ian Bell struck 138 as England overtook Bangladesh's first-innings total to end day three of the second Test 21 runs ahead on 440 for eight in Dhaka.
Bell built a partnership of 143 with Tim Bresnan's unbeaten 74 – although replays suggested Bresnan should have been given out on five.
His batting partner then survived an lbw decision off the bowling of Abdur Razzak when on 82. Bangladesh missed another chance to dismiss Bell on 119, with Kayes dropping him at square leg off paceman Shafiul Islam.
Bell was finally out going for a slog sweep against captain Shakib Al Hasan, only managing to sky the ball to mid wicket where debutant Jahirul Islam completed the catch.
"It was tough out there. We knew coming into this morning that we had to play well because Bangladesh so far have played some good cricket," Bell said on Monday.
"It was nice to make a contribution when it was needed. I hope Bressy can go on tomorrow to score a hundred."
Shakib then ran out Graeme Swann for six before Mahmudullah trapped Stuart Broad lbw for three as the hosts finished the day with some kind of success.
"I think both teams are now under some kind of pressure," said spinner Shakib after claiming four for 99.
Bangladesh first innings 419
England first innings (o/n 171-3)
A Cook c Kayes b Razzak 21
J Trott b Shakib 64
K Pietersen c Kayes b Shakib 45
P Collingwood lbw b Rubel 0
I Bell c Jahirul b Shakib 138
M Prior b Shakib 62
T Bresnan not out 74
G Swann run out 6
S Broad lbw b Mahmudullah 3
J Tredwell not out 0
Total (for 8; 154 overs) 440
Fow 1-29 2-105 3-107 4-174 5-272 6-415 7-426 8-434
"If we take their last two wickets within 30 runs they will get only a 50-run lead. Then we have to bat very well which is pressure for us and whatever runs we score they have to chase it which will be a pressure for them on the fifth day."
Bresnan was fortunate not to be given out on five when Imrul Kayes caught what replays suggested was an inside edge off the bowling of Shakib.
Bangladesh tasted early success on the third morning, Shakib bowling Jonathan Trott with the England opener failing to add to his overnight 64.
Matt Prior joined Bell at the crease and survived a close lbw appeal off Rubel Hossain while on nine but he regained focus and started padding the run rate after the Bangladeshi spinners had kept England on the back foot for the first hour.
Prior completed his 50 with a boundary over mid-on off Mahmudullah and smashed Shakib for two fours in the next over off successive balls before the left-arm spinner had his revenge.
Shakib bowled Prior for 62, ending his 98-run partnership with Bell.
Bangladesh trail 1-0 in the two-Test series.