Batting first, the visitors posted 247/8, riding on half-centuries from Henry Nicholls (68) and Dean Foxcroft (59), who steadied the innings after early setbacks.
In reply, Bangladesh lost early wickets but recovered through a 93-run stand between Saif Hassan (57) and Litton Das (46).
Towhid Hridoy kept the chase alive with a fighting 55, but the hosts failed to build partnerships at crucial moments.
The game turned in the final overs as Blair Tickner ripped through the lower order, finishing with 4 wickets to seal the win. Nathan Smith also played a key role with three scalps, including early breakthroughs.
Bangladesh were eventually bowled out for 221 in 48.3 overs, falling short despite a competitive effort.
With this result, New Zealand take a 1-0 lead in the three-match series.