Shakib returned figures of 2-22 and also is the quickest to 3,000 runs and 200 wickets, achieving the feat in his 54th Test to eclipse English all-rounder Ian Botham who reached it in his 55th Test.
But his fellow left-arm spinner Taijul Islam did the most damage, taking 6-33, his fourth five-for in the last six innings, to wrap up the visitors for 139 while it was chasing the target of 204.
Sunil Ambris scored highest 43, and Jomel Warrican made fluent 41 as the duo combined a 63-run partnership for the ninth wicket to give the side an outside hope.
After Bangladesh was bowled out for 125 in its second innings, adding 70 to its overnight 55-5, the spinners took the charge.
Shakib dismissed opener Kraigg Brathwaite (8) via stumping with a flighted delivery to get to his 200 wicket.
The visitors were unable to resist the slump as Shakib and Taijul took three wickets in just seven balls for no runs on the eve of the lunch.
Hetmyer and Ambris added 33 on a stroke-filled fifth wicket partnership before offspinner Mehidy Hasan (2-27) broke through, removing Hetmyer for 19 ball-27.
Taijul then triggered another collapse to complete his five seventh five-for in 22 tests, edging Bangladesh closer with West Indies at 75-8.
Jomel Warrican and Ambris resisted only to delay the inevitable before Mehidy Hasan had Warrican caught by Shakib at mid-wicket to end the increasingly dangerous partnership.
Taijul fittingly wrapped up West Indian innings, removing Ambris with his arm-ball to give Bangladesh 1-0 lead in the two-match series. Amrbris gestured for a review but to his dismay no review of West Indies was available.
Earlier, Bangladesh was dismissed for 324 in its first innings and took a 78-run lead by bowling the tourists out for 246.
First Published: November 24, 2018, 2:28 PM IST