Chasing 299 for the win, Bangladesh posted 302 for five with two overs to spare at the Harare Sporting Club on Tuesday.
Tamim blasted 112 off 97 deliveries for his 14th hundred before Bangladesh’s new wicketkeeper-batsman Nurul Hasan (45 not out) and Afif Hossain (26 not out) took the visitors beyond the finishing line.
Zimbabwe dismissed Tamim and Mahmudullah off consecutive balls, but failed to stop Nurul and Afif from coasting to the win.
Tamim got into the groove early, smashing a six and two fours of Tendai Chatara - who was hammered for 19 in an over.
Donald Tiripano was clubbed for his second six off a free hit before Liton top-edged Wessley Madhevere for 32.
Shakib Al Hasan looked comfortable before under-edging Jongwe for 32 off 42, but Tamim kept the scoreboard ticking, soon reaching the nineties with a sweep.
He brought up his 14th ODI century in style with a boundary in the 30th over before Tiripano removed both Shakib and Mahmudullah.
Mithun often appeared nervy before Madhevere took his scalp for the tourists' last wicket to fall.
Earlier, Chakabva’s career-best 84, which came through seven boundaries and a six off 91 deliveries after he was promoted to open for the hosts, gave Zimbabwe a strong foundation to build on.
He added 71 runs for the third wicket with the rookie Dion Myers (34) to threaten Bangladesh, but Zimbabwe suffered a mini collapse after Taskin Ahmed went through the gates of Chakabva for his only wicket.
Sikandar Raza (57), however, then took charge and smashed a six and half a dozen boundaries. Lending a capable hand with a knock of 59, Ryan Burl took over in the 45th over with a flurry of boundaries as he scored 47 runs off his last 18 balls that he faced.
Burl hammered Mohammad Saifuddin (3-87) for two straight sixes on the leg side before Shakib dropped him to allow him to reach his second ODI fifty off just 38 balls.
Mustafizur Rahman then gave the breakthrough, removing Raza in the 48th over and ending with figures of 3 for 57.
Adjudged Man of the Match, Tamim later said: “Happy that I contributed for the team. I thought it was a very good wicket, they batted exceptionally well.
“They could have 25-30 runs more but we bowled well in the last two-three overs. It was a good challenge for the batting unit and we responded well. Unfortunately, I won't be part of the T20 team because of my injury.
“I need to do rehab for 10-12 weeks. But all the best to the players and Eid Mubarak to everyone back home.”
Shakib, who was announced best player of the series, said, “He felt good to contribute for the team. Winning 3-0 against Zimbabwe in Zimbabwe is not easy.
“The pitch was really good today, and I feel I missed out. In T20Is, we have to be at our best as the game changes in the matter of an over. We will have to take it one game at a time.”
Bangladesh have so far won all the matches on the tour and will now face Zimbabwe in three T20s starting from Jul 22.