In their chase of 241 for victory, Shakib smashed 96 with little support from other batsmen after grabbing two wickets to secure the win at the Harare Sporting Club on Sunday.
Skipper Tamim Iqbal (20) and Liton Das (21) set the Tigers off to a cautious start before they lost three quick wickets to totter at 50 for three, including the scalp of Mohammad Mithun (2).
When Mosaddek Hossain ran himself out for just 5, the Tigers were flirting with danger, but Shakib then dug deep with Mahmudullah (26) and added 55 for the fourth wicket in a recovery stand.
Blessing Muzarabani then took out Mahmudullah as Shakib craftily took charge in the middle, rotating the strikes to face most of the balls.
After Mehidy Hasan Miraz (6) walked back to the hutch, Afif Hossain (15) added another 38 with Shakib before being stumped off Sikandar Raza, and that was the last Bangladeshi wicket to fall.
Mohammad Saifuddin (28) gave Shakib, who cracked eight boundaries in his 109-ball innings), a capable company and the duo racked up 69 for the eighth wicket to coast to the win.
Earlier, Zimbabwe opted to bat on a flat surface and lost opener Tinashe Kamunhukamwe (1) in the last ball of Taskin Ahmed’s opening over.
Tadiwanashe Marumani (13) and Regis Chakavba (26) kept the scoreboard ticking before the former was castled by Miraz, and in came Brendan Taylor.
Taylor played another solid knock of 46 with five boundaries and a six, giving Zimbabwe hopes of a good score.
Dion Myers proved to be an able partner but Taylor soon went back trampling over his own wicket to leave his team teetering on 111 for four.
Wessley Madhevere, the topscorer for Zimbabwe with 56, then dug deep and moved the scoreboard along. Myers perished off Shakib but Madhevere showed grit, adding 63 with Raza for sixth wicket.
Shoriful Islam gave the breakthrough by taking Madhevere and grabbed 4-46, virtually ending Zimbabwe’s innings.
Shakib, adjudged Man of the Match, later said: "Today was the day I had to put my hands up. Very happy... Lot of credit to Saifuddin, he showed a lot of composure.
“Today the wicket was slower. If the bowlers were bowling straight into the wicket, you had to take chances, which is where we lost wickets."
At the post-match presentation ceremony, winning captain Tamim said: "Restricting them to 240 was a decent job by the bowlers. We definitely had some plans, and as a batting team, we could have done better. They way Shakib and Saifuddin batted was nice to see."
The last match will be played on the same ground on Jul 20, followed by a three-match Twenty20 series.