Abdur Razzak took a hat-trick as Bangladesh won the second one-day international against Zimbabwe by six wickets.
Razzak returned figures of 5-30 to back captain and fellow left-arm spinner Shakib Al Hasan's 4-39 as Zimbabwe were bowled out for 191 in 46.2 overs.
Bangladesh overhauled the below-par target in only 39.4 overs thanks mainly to half-centuries from Raqibul Hasan and left-hander Junaid Siddique.
The home team have now levelled the five-match series 1-1 after their surprise nine-run defeat in the opening match at the same venue a couple of days ago.
Bangladesh dominated from the beginning - which also included winning the toss - and made life difficult for the Zimbabwe batsmen, who were exposed by a lack of experience.
Shafiul Islam removed Chamu Chibhabha early on but a 40-run partnership between Brendan Taylor and Regis Chakabva raised hopes of a revival.
Razzak and Shakib had other plans however and the two left-arm spinners wreaked havoc on the hapless Zimbabwe batsmen, who had to face spin as early as in the seventh over.
Shakib removed opener Taylor for 28, and moments later Chakabva was stumped attempting to attack a Razzak delivery, reducing Zimbabwe to 56-3.
Keith Dabengwa (30) and Tatenda Taibu (21) could not capitalise on the start they got and were claimed respectively by Shakib and Razzak and by 37 overs the visitors were reeling on 132-6.
Craig Ervine and Prosper Utseya put on 67 for the eighth wicket before Utseya became Razzak's third victim, caught at long off by Naeem Islam to leave Zimbabwe on 189-7.
With three wickets in hand and five overs to go Zimbabwe could have easily fancied another 30 runs but a late hat-trick by Razzak finished things off quickly.
Keegan Meth became Shakib's fourth victim and then Razzak, who had taken a wicket in the previous over, completed his hat-trick by snaring Ray Price (one) and Chris Mpofu lbw.
Ervine was left stranded on 42 at the end of the innings.
Bangladesh began their chase on a confident note as Tamim Iqbal and Siddique added 49 runs for the second wicket after the early loss of Imrul Kayes (10).
When it appeared as if the Tigers were cruising home without any hiccup, Tamim threw his wicket away after holing out to Mpofu off Price.
That brought Raqibul Hassan and Siddique together, and they defied Bangladesh further success and stitched a very useful partnership.
Siddique brought up his fifth 50, but a rush of blood three runs later saw him stepping out to Price only to be stumped by Taibu to leave Bangladesh on 147-3.
Raqibul took over from then on and executed some fine cover drives and lofted shots en route to his eighth half-century.
The right-hander provided some fireworks towards the end, moving to 65 off just 79 balls but fell when Bangladesh needed five runs for victory.
However, skipper Shakib and Mushfiqur Rahim ensured there was no more damage as the unbeaten pair took Bangladesh home with more than 10 overs remaining.