Soumya Sarkar chipped in with 3-18 as New Zealand were bowled out in 31.4 overs. Their previous lowest ODI score against Bangladesh was 171.
New Zealand lead the three-match series 2-0 after winning the first match by 44 runs and the second, in which they chased down 291, by seven wickets.
Bangladesh captain Najmul Hossain Shanto was delighted to be able to choose to field when he won the toss.
The McLean Park pitch usually is one of the best to bat on in New Zealand with an average first innings score in ODIs of 239.
But the pitch was unusually well-grassed and Shoriful and Sakib took full advantage, crashing through the New Zealand top order to leave the hosts 6-70.
Both bowlers tied the New Zealand batters down by bowling at the stumps and swinging the ball both ways. They hit excellent lengths and the ball occasionally spat off a length which made the batters reluctant to play forcefully off the front foot.
The largest partnership in the innings was 36 between Will Young (26) and Tom Latham (21) for the third wicket. Only two other New Zealand batters reached double figures.
Shoriful reproduced the form that saw him take two wickets in the opening over of the first ODI, dismissing Young, Latham and Mark Chapman (2).
Sakib maintained an exacting line, giving the batters no width and completing two maidens among his seven overs. He dismissed Rachin Ravindra (8) in the fourth over to begin the New Zealand collapse, then removed Henry Nicholls (1) and Tom Blundell (4).
When the two seamers had left the host's innings in tatters, Sarkar came on and took the wickets of Josh Clarkson (16), Adam Milne (4) and Adithya Ashok (10).
The last wicket fell to Mushfiqur Rahim who took 1-36.