Put into bat by the Kiwis, who were without stalwarts Kane Williamson and Ross Taylor on Saturday, the Tigers were whittled out for just 131 runs in the series opener.
Trent Boult led the charge for New Zealand as he made the most of the University Oval surface to bag 4 for 27. The left-arm seamer pegged the Tigers back early on, trapping skipper Tamim Iqbal plumb in front before dismissing Soumya Sarkar three balls later.
For the tourists, only Mahmudullah and Mushfiqur Rahim managed to score more than 20 runs as the Tigers innings crawled to an end in the 42nd over as Boult picked up the last two wickets. Jimmy Neesham and Mitchell Santner also chipped in with two wickets apiece.
But Nicholls and debutant Devon Conway kept the scoreboard ticking before the latter departed for 27, caught by Mahmudullah at deep square leg off Hasan Mahmud, as the Kiwis closed in on a comprehensive win.
Nicholls finished just one run shy of his half-century as Will Young, also making his debut, struck two boundaries to seal the win in the 23rd over of the innings.
For Bangladesh, this was their lowest ODI score while batting first in three years and also the lowest total against New Zealand since 2007.
Brief Scorecard:
Bangladesh: 131 (Mahmudullah 27; Trent Boult 4-27)
New Zealand: 132/2 (Henry Nicholls 49, Martin Guptill 28; Taskin Ahmed 1-23)