Opener Tom Latham scored a century, but New Zealand were still trailing by 303 runs at the close of the third day of the first Test against Bangladesh.
Visiting skipper Mushfiqur Rahim declared the innings on 595 for 8 on Saturday morning, just over six overs into the day.
He made the declaration just after Sabbir Rahman reached his half century, the fifth Bangladesh player to score more than 50 in this innings. The middle-order batsman made 54 in 86 balls with seven fours to add gloss to a remarkable Bangladesh innings that saw Shakib Al Hasan hitting a double century and Mushfiqur Rahim making 159.
Neil Wagner was the most successful bowler for the Kiwis with four scalps while Trent Boult and Tim Southee bagged two wickets each.
The visitors needed to wait till the 17th over to get a breakthrough though, Kamrul Islam Rabbi removing opener Jeet Raval on 54 thanks to stand-in wicketkeeper Imrul Kayes taking a catch.
Latham and his captain Williamson (53) then added 77 in the second wicket, before Taskin Ahmed sent the latter back to the pavillion with a gem of a delivery, courtesy of another Kayes catch.
Kamrul also put an end to the dangerous-looking Ross Taylor, who hit 40 in 51 balls. But Latham was not to be beaten, as he made an unbeaten 119, his 222-ball innings studded with 13 fours while Henry Nicholls was not out on 24.
Bangladesh will be determined to remove this pair early on the fourth day. If the Tigers cannot force a follow on, a draw is written all over the Test's face.