Bangladesh's Mushfiqur Rahim and Mehidy Hasan Miraz added a fifty each after skipper Najmul Hossain's century to set up a 332-run target for New Zealand in the first Test in Sylhet on Friday.
Mushfiqur hit 67, before Mehidy took on the mantle and carried Bangladesh to 338 in the second innings on the fourth day, with the hosts adding 126 runs to their overnight score.
Ajaz Patel took the last wicket of Shoriful Islam to finish with 4-148, while leg-spinner Ish Sodhi claimed 2-74.
Tim Southee dismissed Najmul Hossain Shanto in the second over of the day, after the Bangladesh skipper added just one run to his overnight 104.
Fellow overnight batsman Mushfiqur was trapped leg-before by Patel after he completed his 27th Test fifty.
Between the dismissals of Najmul and Mushfiqur, Sodhi removed debutant Shahadat Hossain for 18.
Nurul Hasan departed for 10 after riding his luck twice.
He was given leg-before on eight off Patel, but the decision was overturned as replays indicated an inside edge.
Daryl Mitchell dropped him at slip off Glenn Phillips in the next over, before the latter finally had him caught and bowled.
Mehidy survived on 13, when a television replay concluded Henry Nicholls' catch off Patel at mid-off was not clean.
New Zealand cleaned up the last three wickets in less than an hour after the lunch break.
Nayeem Hasan gloved Sodhi at short leg for four and Taijul Islam holed out at mid-off off Patel on nought.
New Zealand made 317 runs in the first innings in reply to Bangladesh's 310.
BDST: 1359 HRS, DEC 01, 2023