This is Bangladesh’s third straight ODI series win, after earlier victories against West Indies and Pakistan.
Batting first, Bangladesh made 265 for 8. Shanto scored 105 despite playing in 34-degree heat. He had earlier retired on 50 due to cramps in the previous match.
Bangladesh were in trouble at 32-3 before Shanto and Liton Das added 160 runs together. Liton made 76, his first ODI fifty since October 2023.
New Zealand were all out for 210 in 44.5 overs. Mustafizur took 5 for 43, his first five-wicket haul since the 2019 Cricket World Cup.
For New Zealand, Nick Kelly scored 59, while Dean Foxcroft made 75 off 72 balls with seven sixes.
New Zealand had chosen to bowl first and got early success as Will O’Rourke removed both openers and Soumya Sarkar. But by the time O’Rourke returned, Shanto was on 89 and Liton on 56.
Muhammad Abbas bowled five overs for 16 runs without taking a wicket.
Shanto and Liton built the innings slowly, reaching a 50-run stand by the 20th over and 100 by the 30th.
Liton was out for 76 off 91 balls, backing away from leg stump before Jayden Lennox bowled him.
Shanto completed his fourth ODI century, and first in two years, off 114 balls with a single off Lennox. He was later dismissed for 105, caught near the boundary by Nathan Smith.
In the chase, New Zealand struggled to build momentum.
Mustafizur and Nahid Rana (2-37) reduced the top order early. Kelly scored his second straight fifty but did not get support.
Mustafizur took three wickets in 17 balls to complete his sixth five-wicket haul, leaving New Zealand at 160-9. Foxcroft added runs late, but the result was already decided.