Left-arm pacer Neil Wagner, who replaced spinner Bruce Martin for the second Test, picked up two wickets for New Zealand while Trent Boult, Ish Sodhi and Corey Anderson each grabbed one.
Dropped on five and 10 off paceman Doug Bracewell behind the wickets, the flamboyant Tamim punished the visitors with 17 boundaries during his 153-ball knock.
The 24-year-old left-hander, who was first dropped by wicketkeeper BJ Watling and then by captain Brendon McCullum, maintained a brisk scoring rate during a 67-run stand with Marshall Ayub (41) for the second wicket and a third-wicket partnership of 76 with Mominul Haque (47).
Kane Williamson rose high to snare a catch and dismiss Tamim, who has not scored a Test hundred since June 2010, as the batsman tried to guide Wagner through the gully region.
All-rounder Shakib Al Hasan (20) fell leg before wicket to young leg-spinner Sodhi at the stroke of tea.
A heavy downpour during the break ensured that no further play was possible for the rest of the day.
The first match of the two-Test series ended in a draw.
Scorecard
Bangladesh (1st innings):
Tamim Iqbal c Williamson b Wagner 95
Anamul Haque c Williamson b Boult 7
Marshall Ayub b Wagner 41
Mominul Haque c Watling b Anderson 47
Shakib Al Hasan lbw b Sodhi 20
Mushfiqur Rahim not out 14
Extras: (b2,lb1, w1) 4
Total: (for five wickets, 54.4 overs) 228
Fall of wickets: 1-23, 2-90, 3-166, 4-208, 5-228.
Bowling: Boult 13-1-50-1, Bracewell 10-0-51-0, Wagner 13-3-42-2, Sodhi 11.4-2-38-1, Williamson 4-0-30-0, Anderson 3-0-14-1.
Image: Tamim Iqbal
Photograph: Julian Herbert/Getty Images
Mominul's maiden ton takes Bangladesh close to Kiwi total
Record man Gazi helps Bangladesh register draw against NZ
Rain and Bangladesh tail leave NZ Test heading for a draw
Watling and Boult rescue New Zealand
Williamson leads New Zealand charge with century