Bangladesh opener Liton Das made a fine 102 to set up a 155-run victory over Zimbabwe on Friday in the first of three one-day internationals at Harare Sports Club.
The tourists made 276-9 off 50 overs before left-arm spinner Shakib al Hasan took 5-30 as Zimbabwe slumped to a dismal 121 all out, with injured Timycen Maruma unable to bat.
Shakib's third five-wicket haul in ODIs also gave him the record most dismissals in ODI cricket, going past former captain Mashrafe Mortaza's tally of 269 wickets.
Das, who was only picked for this game after regular wicketkeeper Mushfiqur Rahim left the tour because of a family matter, struck his fourth ODI century for Bangladesh after they were put in to bat when Zimbabwe captain Brendan Taylor won the toss.
Three of his four tons have come against the southern Africa nation, and the latest came off 114 balls and included eight fours.
Bangladesh lost captain and opener Tamim Iqbal in the third over without a run on the board and were 74-4 before Das and Mahmudullah Riyad turned the tide in the first match of a three-ODI series.
They added 93 for the fifth wicket before Mahmudullah was caught behind by wicketkeeper Regis Chakabva off Luke Jongwe for 33.
Das carried on to post his century before being caught at square leg by Wellington Masakadza from a Richard Ngarava delivery.
Batting at number six, Afif Hossain struck two sixes in scoring 45 off 35 balls before being clean bowled by right-arm medium pacer Jongwe, who was the most successful Zimbabwean bowler, taking 3-51.
In reply, Zimbabwe made a disastrous start, losing openers Wesley Madhevere (9) and Tadiwanashe Marumani (0) to slip to 13-2 within the first five overs.
Hopes that Taylor could celebrate his 200th ODI appearance with a big innings failed to materialise and he made only 24 before being caught by Taskin Ahmed at short fine leg to give Shakib the wicket he needed to claim the national record.
It was left to Chakabva to top score with 54. He produced four fours and two sixes, before falling to a Mehidy Hasan Miraz catch.
The matches are part of the World Cup Super League, a feeder tournament that determines which seven teams, along with hosts India, earn direct qualification to the 2023 Cricket World Cup.