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.
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.
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.
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.
Disclaimer: No Business Standard Journalist was involved in creation of this content
