Despite Nick Kelly making 83 New Zealand were bowled out for 198 in 48.4 overs on Monday.
Opener Tanzid Hasan then struck a fluent 58-ball 76 and Najmul Hossain Shanto made a patient 50 before retiring hurt, taking Bangladesh to victory with six wickets and 87 balls remaining.
New Zealand captain Tom Latham opted to bat first but his side struggled to deal with Nahid's express pace on a slow surface.
Kelly's 83 came off 102 balls, including 14 fours. It was the 32-year-old St Kilda-born opener's maiden ODI fifty in his fifth international.
However, he received little support with no other batter passing 20.
New Zealand began cautiously on a sluggish pitch where the ball frequently kept low, making stroke-play difficult.
Nahid made the early breakthrough, clocking 144.7 kph to dismiss Henry Nicholls. He struck again in his next over to remove Will Young, before Latham edged one behind to wicketkeeper Litton Das, giving Soumya Sarkar his only wicket after returning to the side in place of Afif Hossain.
Shoriful Islam (2-32) eventually removed Kelly with a short-pitched delivery, the first of six wickets to fall for 53.Â
Pacer Nathan Smith removed Saif Hasan and Will O'Rourke dismissed Soumya for eight apiece, leaving Bangladesh at 2-21, giving New Zealand a glimmer of hope.
Tanzid and Shanto shattered that, adding 120-runs for the third wicket. Left-arm spinner Jayden Lennox broke through by sending back Tanzid and also removed Litton, who was playing his 100th ODI, for seven.
A muscle cramp forced Shanto to retire just after he reached his 12th fifty, his first since February 2025, but Bangladesh already had complete control.
The series-deciding ODI is on Thursday in Chattogram.