Najmul Hossain Shanto produced a captain's hundred and forged two significant partnerships to put Bangladesh in a commanding position in the opening test against the Blackcaps in Sylhet on Thursday.
The home side finished day three on 212/3 for a lead of 205 and with seven wickets in hand they would be confident of going 1-0 up in the two-test series.
New Zealand, who made 317 in their first innings, would have to play out of their skin batting last in the spinner-dominated contest.
Shanto was batting on 104, his third hundred in four test innings, when bad light stopped play with Mushfiqur Rahim on 43 at the other end.
Earlier, New Zealand resumed on 266/8 and went on to eclipse Bangladesh's first innings total of 310 after Tim Southee (35) and Kyle Jamieson (23) put together a 52-run stand for the ninth wicket.
Bangladesh lost both their openers early in their second innings when they came out to bat.
Zakir Hasan fell to Ajaz Patel for the second time in the match and Mahmudul Hasan Joy's stay was cut short in bizarre fashion.
Shanto's straight drive brushed bowler Southee's fingers before hitting the stumps at the non-striker's end with Joy short of the crease.
Shanto combined with Mominul Haq (40) in a fluent 90-run partnership to tide over the crisis.
Mominul was run out after an almighty mix-up with Shanto, who went on to consolidate Bangladesh's position with a 96-run partnership with Mushfiqur for the unbroken fourth wicket.
First test, end of day three:
Bangladesh 310 & 212/3 (Najmul Hossain Shanto 104 not out, Mushfiqur Rahim 43 not out, Mominul Haque 40)
New Zealand 317 (Williamson 104, Phillips 42, Mitchell 41, Southee 35; Islam 4/109, Mominul 3/4).
Watch live, free-to-air coverage of the first test between the Blackcaps and Bangladesh on ThreeNow or follow live updates on Newshub from 4pm