Bangladesh 242 for 7 (Shakib 96*, Jongwe 2-46) beat Zimbabwe 240 for 9 (Madhevere 56, Taylor 46, Shoriful 4-46) by three wickets
Harare: After Shoriful Islam's spell of 4/46 reduced the hosts to 240, Shakib Al Hasan's unbeaten 96 helped Bangladesh clinch the series 2-0 and consolidate their second spot in the ICC Cricket World Cup Super League standings.
Bangladesh made it difficult for themselves in the chase but Shakib Al Hasan, as he has done so often for his team in the past, ensured the visitors got home with three wickets in hand and five balls to spare.
Looking to make a comeback into the series, Zimbabwe chose to bat first after winning the toss.
The hosts got off to a poor start as Taskin Ahmed dismissed Tinashe Kamunhukamwe (1) in the very first over before Tadiwanashe Marumani (13) was scalped by Mehidy Hasan in the sixth over.
Captain Brendan Taylor and Regis Chakabva then consolidated the innings with a 47-run stand.
Shakib Al Hasan provided the crucial breakthrough for Bangladesh with an arm ball that cleaned up Chakabva (26).
Taylor (46) then got out in absolutely bizarre fashion - after missing an uppercut, the Zimbabwe captain shadow-practised a shot but failed to control the follow-through of the bat, thus resulting in a hit-wicket.
At 111/4, Zimbabwe were in a precarious position having lost their captain.
Dion Myers and Wesley Madhevere ensured that the lower-order wasn't exposed in the middle overs as they strung together 35 runs for the fifth wicket before Shakib once again broke the partnership by dismissing Myers (34).
Madhevere, who opened in the last game, kept the scoreboard ticking and brought up his fifty in the 42nd over while the returning Sikander Raza (30) secured the other end.
Tamim Iqbal brought back Shoriful Islam into the attack and the left-arm pacer got rid of Madhevere (54), Luke Jongwe (8) and Blessing Muzarabani (0) in a span of nine balls, thus returning with career-best figures of 4/46.
Tendai Chatara and Richard Ngarava made sure they didn't get bowled out as Zimbabwe posted 240/9 in 50 overs.
In reply, Liton Das and Tamim Iqbal started tentatively to make sure they didn't give away early wickets to the bowlers.
Iqbal's (20) wicket however did trigger a mini-collapse as Bangladesh went from 39/0 to 50/3 as Das (21) and Mohammad Mithun (2) fell cheaply.
The visitors got into further trouble when Mosaddek Hossain was run out trying to steal a single as the scoreboard read 75/4.
The experienced duo of Shakib and Mahumudullah bailed The Tigers out of trouble while keeping their required run rate in check with their 55-run stand from 61 balls.
Taylor's decision to bring Blessing Muzarabani back into the attack proved to be a great one as he got the wicket of Mahmudullah (26) off the very first ball of his new spell.
Zimbabwe felt they were back in the game with wickets of Mehidy Hasan Miraz (6) and then Afif Hossain (15) before Shakib found an able ally in Mohammad Saifuddin.
Coming in to bat at 173/7 with Bangladesh still needing 68 from 69 balls, Saifuddin played a very smart innings of 28* and along with Shakib, ensured that the visitors crossed the line with no further hiccups.
Shakib was awarded the Player of the Match for his all-round performance of 96* and 2/42.
With the series at 2-0 in Bangladesh's favour, the two teams will clash in the final ODI in Harare on Tuesday.