West Indies 409 (Da Silva 92, Bonner 90, Joseph 82, Jayed 4-75) and 117 (Bonner 38, Islam 4-36, Hasan 3-34) beat Bangladesh 296 (Liton 71, Mehidy 57, Rahim 54, Cornwall 5-74, Gabriel 3-70) and 213 (Tamim 50, Cornwall 4-105, Brathwaite 3-25, Warrican 3-47) by 17 runs
Dhaka: Bangladesh's spinners shared the early wickets to stop West Indies taking complete control of the second and final test on Saturday.
West Indies reached 41-3 in its second innings at stumps on day three for a lead of 154 runs.
Nkrumah Bonner (8) and nightwatchman Jomel Warrican (2) are at the crease.
Offspinner Rahkeem Cornwall earlier helped West Indies take a 113-run first innings lead, claiming 5-74 as Bangladesh was bowled out for 296 in reply to West Indies' 409. It was Cornwall's second five-for in test cricket.
Fast bowlers Shannon Gabriel (3-70) and Alzarri Joseph (2-60) also made an impact.
Liton Das was the top-scorer for Bangladesh with 71 while Mehidy Hasan, fresh from his first century in the first test, hit 57. Mushfiqur Rahim contributed 54.
Liton and Mehidy shared a 126-run stand for the seventh wicket to reduce the first-innings deficit.
Cornwall strengthened West Indies' position by dismissing both of the overnight batsmen, Mushfiqur and Mohammad Mithun, after Bangladesh resumed on 105-4.
Cornwall had Mithun caught by captain Kraigg Brathwaite on 15. Mushfiqur brought up his 22nd test 50, pushing Cornwall's delivery toward mid-on for a single. But he was dismissed by Cornwall soon after while trying to play a reverse sweep shot.
West Indies appeared set for a big lead but Liton and Mehidy resisted.
Liton brought up his seventh test 50 with a fierce cut past point for a boundary, and has reached 1,000 test runs in 22 matches.
Cornwall broke through with the wicket of Liton, and Bangladesh collapsed after his dismissal, losing its last four wickets for 15 runs.
But the spinners brought the hosts back on track, bowling with a tight line and length.
Offspinner Nayeem Hasan broke through in the fourth over, dismissing West Indies captain Kraigg Brathwaite (6) after video review.
Offspinner Mehidy Hasan then spun one sharply to remove Shayne Moseley (7) for his 100th test wicket. Left-arm spinner Taijul Islam grabbed the wicket of John Campbell, who scored 18 off 48.
West Indies won the first test by three wickets.