Bangladesh levelled the three-match one-day international series against Zimbabwe with a six-wicket triumph in Mirpur.
A fine 96-run partnership between Sean Williams and captain Prosper Utseya helped the tourists recover from a poor start to reach 160 for nine from their 50 overs after being asked to bat first.
But the hosts, with Raqibul Hasan (52 not out) and opener Mehrab Hossain Jr (43) leading the way, surpassed their victory target for the loss of just four wickets and with more than five overs to spare.
Zimbabwe lost their first wicket in the ninth over when Nazmul Hossain had Hamilton Masakadza (17) caught at mid-off by Rubel Hossain.
That was a sign of things to come as wickets then began tumbling at a rapid pace. Vusi Sibanda fell for seven in the 11th over before Tatenda Taibu (three) quickly followed suit and then Zimbabwe lost Stuart Matsikenyeri (10), Elton Chigumbura (one) and Malcolm Waller (one) in the space of three overs to leave the tourists floundering on 47 for six in the 19th over.
Williams hit three fours and a six as he combined well with Utseya to repair Zimbabwe's innings before he was dismissed - run out by Mashrafe Mortaza - for 59 in the 47th over.
Utseya reached a career-best 38 before perishing in the final over, with Ray Price (seven) then bowled by Mortaza with the last ball of the innings.
Chasing just 161, Bangladesh knew they did not have to produce anything too spectacular to level the series.
Opener Tamim Iqbal was bowled between bat and pad by Tawanda Mupariwa for 21 and Mohammad Ashraful contributed only five before Ed Rainsford had him caught at short cover by Utseya, but Mehrab and Raqibul shared a 52-run stand for the third wicket to get the home side back on track.
Shakib Al Hasan (22) came in and picked up where Mehrab left off as Bangladesh inched further towards their target, with Mushfiqur Rahim (13 not out) finishing things off in style with a six over long leg off Mupariwa.