Shakib Al Hasan produced a brilliant all-round performance in the fourth one-day international against New Zealand on Thursday to help Bangladesh to a maiden series victory over top-flight opposition.
Bangladesh won by nine runs to take an unassailable 3-0 lead in the five-match series.
Shakib smashed 106 runs off 113 balls under pressure to guide Bangladesh to 241 before taking 3-54, as New Zealand were dismissed for 232 with three balls to spare.
Unheralded New Zealand batsman Kane Williamson had threatened to spoil the party with 108 off 132 balls, but the local crowd erupted in joy when Roqibul Hassan held on to the catch at square leg off paceman Shafiul Islam to end the visitors' challenge.
Williams, who struggled with cramp and batted with a runner after reaching 71, looked an unlikely hero for New Zealand, reaching his maiden one-day century in his fifth match after scoring only 13 in his previous four.
He added 53 runs with Nathan McCullum for the eighth wicket as New Zealand recovered from 80 for five to raise the prospect of a first win on the tour.
McCullum (33) was run out by a direct throw from substitute fielder Naeem Islam in the penultimate over bowled by Shakib and Darrel Tuffey was out for a duck next ball.
New Zealand began the final over needing 16 runs and Williamson made six in the first two balls before Shafiul struck.
It was Bangladesh's second series win against a current test-playing side, following their 3-0 victory over an under-strength West Indies last year.
Shakib, who took over the captaincy from injured Mashrafe Mortaza after the first match, set up the win with his fifth one-day century after New Zealand's seamers had reduced Bangladesh to 44 for three.
Shakib steadied the innings with half-century stands with Imrul Kayes (37) and Mushfiqur Rahim (13) for the fourth and fifth wickets.
He added 68 runs with Mahmudullah (37) for the sixth wicket before giving a return catch to Daniel Vettori and New Zealand wrapped up Bangladesh's innings with 11 balls to play.
Scorecard
Bangladesh:
I. Kayes c B. McCullum b Vettori 37
S. Nafees c B. McCullum b Mills 0
Z. Siddique c Redmond b Mills 17
R. Hassan b Bennett 6
S. Hasan c and b Vettori 106
M. Rahim run out 13
Mahmudullah b Bennett 37
M. Suhrawadi c Williamson b Tuffey 8
A. Razzak c Vettori b Tuffey 7
S. Islam c B. McCullum b Bennett 1
R. Hossain not out 0.
Extras: (lb-2, w-6, nb-1) 9
Total: (all out; 48.1 overs) 241
Fall of wickets: 1-1, 2-27, 3-44, 4-97, 5-148, 6-216, 7-232, 8-239, 9-241, 10-241.
Bowling: Mills 6-0-38-0, Tuffey 6.1-0-31-2, Bennett 8-0-44-3, Vettori 10-0-35-2, N. McCullum 10-0-47-0, Williamson 2-0-15-0, Elliot 6-0-29-0
New Zealand:
B. McCullum c & b Shafiul 21
B. Watling lbw b Razzak 6
A. Redmond lbw b Shakib 16
R. Taylor c Shafiul b Suhrawadi 3
K. Williamson c Raqibul b Shafiul 108
D. Vettori c Suhrawadi b Mahmudullah 8
G. Elliott c Razzak b Shakib 22
K. Mills c Imrul b Rubel 8
N. McCullum run out 33
D. Tuffey c Suhrawadi b Shakib 0
H. Bennett not out 0.
Extras: (lb-4, w-3) 7
Total: (all out; 49.3 overs) 232
Fall of wickets: 1-18, 2-32, 3-35, 4-68, 5-80, 6-150, 7-172, 8-225, 9-225, 10-232.
Bowling: Shafiul 7.3-0-39-2, Razzak 10-0-41-1, Suhrawadi 10-0-47-1, Shakib 10-0-54-3, Mahmudullah 2-0-5-1, Rubel 10-0-42-1