The win, following New Zealand's 77-run victory in the first match, gives the home side an unbeatable 2-0 lead with one match remaining.
Nelson: Neil Broom's maiden century and the self-belief of Kane Williamson gave New Zealand a 67-run victory over Bangladesh to take the second one-day international and the series in Nelson on Thursday.
Bangladesh suffered a dramatic meltdown when they were cruising towards what should have been a comfortable victory after Broom's unbeaten 109 was the only significant score in New Zealand's 251.
The tourists reached 104 for one in the 23rd over and were all out for 184 by the 43rd, losing their last nine wickets for 80 runs.
The win, following New Zealand's 77-run victory in the first match, gives the home side an unbeatable 2-0 lead with one match remaining, also in Nelson, on Saturday.
With New Zealand's frontline bowlers struggled for consistency at the start of the Bangladesh innings, skipper and part-time spinner Williamson put himself into the attack as the seventh bowler and claimed three for 22 with his looping off-breaks.
It was the breakthrough New Zealand needed after Imrul Kayes, Tamim Iqbal and Sabbir Rahman had given Bangladesh a solid start to their chase.
Tamim produced a quick 16 and Imrul (59) and Sabbir (38) kept the scoreboard ticking over at a constant rate.
But after Imrul brought the 100 up with a huge six off Jimmy Neesham, Sabbir was run out in bizarre fashion as he turned back going for a single and both batsmen raced for the non-striker's end.
Imrul believed he lost the race and headed for the dressing room only to be recalled when television replays showed Sabbir had grounded his bat second.
It was the start of the Bangladesh downfall with Lockie Ferguson, who dropped a sitter from Imrul on 45, bowling new batsman Mahmudullah for one with a yorker.
Williamson then entered the attack to remove Shakib Al Hasan (7), Mosaddek Hossain (3) and Tanveer Haider (2).
Debutant Nurul Hasan, standing in for injured wicketkeeper Mushfiqur Rahim, dragged the innings out with 24 before being the last wicket to fall.
Bangladesh, in an unorthodox reaction to losing the first ODI, injected three debutants into their side.
Along with Nurul, who capped his game with the smart stumping of Neesham and two sharp catches, speedster Subashis Roy took the wicket of Mitchell Santner and Tanveer took a catch to remove New Zealand's Luke Ronchi for 35.
Ronchi (35) was the second best performing New Zealand batsman and featured in a 64-run stand with Broom for the sixth wicket.
New Zealand were sent into bat afer Bangladesh captain Mushrafe Mortaza won the toss and decided to make early use of heavily overcast conditions.
By the time the clouds dispersed the New Zealand top order, with the exception of Broom, were already out and the tail struggled to pick up the pace.
Mashrafe Mortaza led the Bangladesh bowling figures with three for 49.