Left-arm spinner Jayden Lennox briefly threatened to spark a collapse, dismissing Tanzid and Litton Das in quick succession -- both falling while attempting to clear the boundary.
Tanzid struck 10 fours and four sixes in his 58-ball knock. Litton made seven.
Shanto kept his calm as he raised his fifty off 71 balls, but was forced to retire due to severe cramp.
Towhid Hridoy, unbeaten on 30, and skipper Mehidy Hasan Miraz, not out on eight, saw Bangladesh home without further trouble.
Earlier, the 23-year-old Rana set up the win during New Zealand’s innings after he operated across four separate spells and struck in the first over of each new burst.
Left-arm quick Shoriful Islam provided strong support, returning 2-32 from his 10 overs, including the wicket of Nick Kelly (83).
Fast bowlers Soumya and Taskin Ahmed took one wicket each, as did leg-spinner Rishad Hossain.
New Zealand’s innings was held together almost single-handedly by opener Kelly, who made 83 for his maiden ODI half-century.
No other visiting batter reached 20, with Muhammad Abbas the next highest scorer, on 19.
Shoriful set the platform early, delivering an incisive opening spell of six overs for just 17 runs, generating 29 dot balls to put the tourists on the back foot.
Rana tightened the stranglehold, collecting two wickets in his opening five-over spell.