Electing to field first, Bangladesh bowlers had New Zealand on the ropes but Broom rescued the hosts with a glittering unbeaten 109 that took the team's total to 251 all out in 50 overs at the Saxton Oval.
Glenn McGrath picks his Test team of the year
Bangladesh then began their chase well on course but a disastrous run out of Sabbir Rahman (38) broke a 75-run second wicket stand with opener Imrul Kayes (59), triggering a collapse that saw their innings fold up for 184 in 42.4 overs.
New Zealand took the three-match series 2-0 with a match to spare as Bangladesh were yet to make a mark in their first overseas tour after more than two years.
Playing without injured Mushfiqur Rahim and Mustafizur Rahman, Bangladesh handed down debuts to wicketkeeper Nurul Hasan, paceman Subashis Roy and leg-spinner Tanbir Hayder.
Check Full Scorecard here
The Bangladesh top order failed to fire once again and the middle order looked frail in the absence of Mushfiqur.
Bangladesh cruised to 105 for 1 in the 23rd over but then lost nine wickets for 79 runs.
Tamim Iqbal (16) cracked three boundaries before walking back to a rash shot off pacer Tim Southee. But Kayes (59) and Sabbir (38) steadied the innings with a 75-run stand.
Sabbir clubbed three sixes before falling rather unluckily. Imrul went for a quick single, as Sabbir turned back after coming out of his crease. Imrul was given out but replays showed he had scurried in at the non-striker's end before his partner and with the stumps broken at the opposite end, Sabbir had to go.
The opener was dropped at deep by Lockie Ferguson who soon made amends uprooting Mahmudullah's stumps with a 144 km/h yorker, as Bangladesh's slide continued.
Kayes cut Ferguson away to reach his 12th ODI half-century but what followed was nothing short of collective self-destruction.
Shakib Al Hasan (7), Mosaddek Hossain (3), Kayes and debutant Tanbir Hayder (2) perished playing poor shots as the visiting team reeled at 141 for 7.
Nurul Hasan (24) and captain Mashrafe (17) tried to hold on but the damage was already done.
Home captain Kane Williamson bowled his spin with guile and returned 3 for 22 from five overs. Trent Boult and Southee picked up two wickets each.
Earlier, Broom's strokeplay was a joy to watch as he bedecked his gritty 107-ball knock with eight boundaries and three sixes to push the New Zealand total well beyond what Bangladesh had hoped to restrict them to.
Mashrafe (3-49), however, led a much disciplined Bangladesh bowling attack from the outset.
Mashrafe started off with a wicket maiden trapping Martin Guptill in front for a duck after a review was turned down earlier in the over.
Subashis could have sent back Williamson for his maiden ODI wicket but he spilled a return catch from the New Zealand skipper.
Taskin reaped the reward first by picking up Williamson (14) before Shakib joined the act to dismiss New Zealand's century hero from the last match, Tom Latham (22). The Kiwis were reduced to 47 for 3 in the 14th over.
Broom and James Neesham (28) then steadied the ship with a 51-run stand. But the latter threw it away before New Zealand could reach 100 as Mosaddek had him stumped.
When Mashrafe went through the gates of Colin Munro (3), New Zealand looked in all sorts of trouble on 107 for 5.
But Broom decided it was time for him to take charge and cruised to his fifty from 65 deliveries. Luke Ronchi (35) also started to look dangerous, blasting three boundaries and a six in eight balls but Taskin got his man with a short ball to end a 64-run sixth-wicket stand.
Broom then kept the wheels rolling for New Zealand with some support from the other end and his 101-ball century helped the Kiwis reach a fighting total.
Mitchell Santner (9) went back for Subashis's first international wicket, Tim Southee (3) fell to Shakib and Lockie Ferguson became Mashrafe's third.
Brief scores: New Zealand: 251 in 50 overs (Broom 109*, Ronchi 35, Neesham 28; Mashrafe Mortaza 3-49, Taskin Ahmed 2-45, Shakib Al Hasan 2/45). Bangladesh: 184 all out in 42.4 overs (Imrul Kayes 59, Sabbir Rahman 38; Kane Williamson 3-22, Trent Boult 2-26, Tim Southee 2-33)