Zimbabwe, who lost the first test in Dhaka by three wickets, folded for 151 in their second innings at Khulna as they chased 314 for victory.
Former captain Shakib, who took 5-80 in the first innings, underlined his status as Bangladesh’s best cricketer by taking five wickets for 44 in the second.
He followed England all-rounder Ian Botham and Pakistan’s Imran Khan in completing a hundred and a haul of 10 wickets in the same test.
The left-hander, who scored 137 in the first innings to set up Bangladesh’s first innings total of 433, took out the dangerous Hamilton Masakadza (61) in the last session to spark a collapse as Zimbabwe lost their last five wickets for 15 runs.
Masakadza, who scored 158 in Zimbabwe’s first innings, was the only visiting batsman to provide some resistance.
Shakib’s fellow left-arm spinner, Taijul Islam, who took three wickets in the first innings, bagged three more in the second.
The third and final test will be begin in Chittagong on Wednesday. (Reuters)