Returning all-rounder Shakib Al Hasan took 4-35 to help Bangladesh recover from a batting collapse to beat Zimbabwe by five runs in the fourth T20I in Dhaka on Friday.
Mustafizur Rahman took 3-19 to help the home side bowl out Zimbabwe for 138 runs in 19.4 overs.
Resuming on a modest 143, Zimbabwe lost opener Brian Bennett for a duck in the first over and were soon reduced to 57-4.
But they remained in the hunt after a middle-order rally, with Johnathan Campbell and Ryan Burl putting on a 35-run stand.
Shakib took the wicket of Campbell for 31 to put Bangladesh on top after Mustafizur had Burl caught behind off Soumya Sarkar on 19.
Wellington Masakadza struck an unbeaten 19 off eight balls to take Zimbabwe close, only to be run out in the final over with Zimbabwe needing 14.
Shakib, playing his first T20I in almost a year, dismissed Blessing Muzarabani and Richard Ngarava in the final over to wrap up the Zimbabwe innings.
Asked to bat after Zimbabwe won the toss, Bangladesh got off to a flying start as openers Tanzid Hasan Tamim and Soumya put on a 101-run stand for the first wicket.
Luke Jongwe dismissed Tanzid for 52 off 37 balls to break the opening partnership and Soumya fell for 41 in the same over.
The hosts were bowled out for the first time in the series, losing their remaining eight wickets for just 35 runs.
Zimbabwe captain Sikandar Raza sent back Towhid Hridoy for 12 before Bennett struck twice in the same over to remove Shakib for one.
Bangladesh had already wrapped up the series after winning the first three matches.
Zimbabwe concludes their tour with the fifth and final match of the series in Dhaka on Sunday.