England were in danger of conceding a first-innings lead before posting 440-8 in their first innings at stumps in reply to Bangladesh's 419, thanks to Bell's 10th Test hundred and Bresnan's maiden half-century.
The tourists were struggling at 174-4 early in the day before being revived by Bell, who added 98 for the fifth wicket with Matt Prior (62) and 143 for the next with Bresnan.
England were just four runs short of Bangladesh's total when Bell was caught by debutant Jahurul Islam while slog-sweeping left-arm spinner Shakib Al Hasan. He smashed one six and 15 fours in his 263-ball knock.
Bresnan, batting in only his second Test innings, hit five fours in a defiant 214-ball knock.
Skipper Shakib put pressure on England after dismissing Jonathan Trott and Prior in the morning, but Bell and Bresnan applied themselves well to deny the hosts success for more than a session.
The Bangladesh captain was the most successful bowler with 4-99 off 57 disciplined overs.
He offered a chance on 119 when he flicked seamer Shafiul Islam, but diving Imrul Kayes failed to latch it at square-leg.
Bangladesh were unlucky not to get the wickets of Prior and Bresnan early in the batsmen's innings.
Prior was on nine when he survived a confident appeal for leg-before off Rubel, although TV replays suggested the ball would have hit the leg-stump.
Bangladesh's appeal for a catch against Bresnan was also turned down but TV replays suggested the batsman inside-edged a Shakib delivery on to his pad before being caught at silly-point when on five.
Prior and Bresnan both went on to play crucial knocks and ease pressure on their team.
England suffered a setback in the morning's third over when makeshift opener Trott was bowled by Shakib at his overnight score of 64, the ball hitting the pad and elbow before rolling on to the stumps.
England lead 1-0 in the series following their 181-run victory in the opening Test in Chittagong.
|Bangladesh 1st innings||419||T. Iqbal 85, G. Swann 4-114|
|England 1st innings||overnight 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 Jahurul 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|
|Extras||b9, lb11, nb6, w1||27|
|Total||for 8 wkts, 154 overs||440|
|Fall of wkts||1-29, 2-105, 3-107, 4-174, 5-272, 6-415, 7-426, 8-434|
|Shafiul 14-3-45-0 (w1), Razzak 37-7-127-1, Shakib 57-27-99-4, Mahmudullah 15-3-36-1, Rubel 23-4-80-1 (nb6), Naeem 7-0-29-0, Tamim 1-0-4-0|
Source: AFP South Asian Edition