The hosts carried on from their overnight 95-2 to be bowled out for 265 after 112.5 overs.
Captain Kraigg Brathwaite carried on from his 42 on day one to eventually be dismissed for a marathon 94 off 268 balls including nine fours.
Vice-captain Jermaine Blackwood also showed good form with a 139-ball 63, also including nine boundaries.
Off-spinner Mehidy Hasan Miraz led the way with the ball, with 4-59 off 22.5 overs, while pacers Ebadot Hossain and Khaled Ahmed ended with figures of 2-65 off 28 overs and 2-59 off 22 overs, respectively.
Bangladesh then struggled to 50-2 off 20 overs, trailing the Windies by 112 runs at the close, with Mahmudul Hasan Joy (18) and Najmul Hossain Shanto (8) at the crease. Alzarri Joseph took both wickets for the West Indies.
Bangladesh carried on from their overnight 50-2 to reach 245 all out off 90.5 overs thanks to Captain Shakib Al Hasan who got his second fifty in the match with 63 and wicketkeeper Nurul Hasan who got 64. Opener Mahmudul Hasan Joy earlier got 42.
Roach, who now has 249 Test wickets, was brilliant for the hosts with 5-53 off 24.5 overs while Alzarri Joseph and Kyle Mayers supported well with 3-55 from 19 overs and 2-30 from 13 overs, respectively.
The hosts, needing 84 to win, got off to a terrible start and were 9-3 after four overs, losing captain Kraigg Brathwaite, Nkrumah Bonner, and Raymon Reifer in quick succession.
Opener John Campbell (28 not out) and vice-captain Jermaine Blackwood (17 not out) then combined to ensure the hosts lost no more wickets, ending the day 49-3 off 15 overs, needing a further 35 runs for a 1-0 lead in the two-match series.
Khaled Ahmed took all three wickets for Bangladesh.
At the close of the third day of the second Test at the Darren Sammy Stadium, Bangladesh batting a second time are 132-6 at stumps still needing 42 runs to force the West Indies to bat again.
Roach took the first three wickets and ended the day with figures of 3-32. He now has 252 Test wickets which moved him past Michael Holding and into the position of the sixth-highest wicket taker for the West Indies.
Najmul Hossain Shanto offered some resistance to the West Indies attack with a score of 42 before he was dismissed by Alzarri Joseph, who has so far taken 2-31.
The West Indies resumed from their overnight score of 340-5, a lead of 106. They extended the lead to 174 as they were dismissed for 408. Kyle Mayers, 126 not out overnight, was dismissed by Khaled Ahmed, who took 5-106.
Scores so far: Bangladesh 234 and 132-6, West Indies 408.
Bangladesh started day four 132-6, trailing the Windies by 42 runs with Nurul Hasan on 16 and Mehidy Hasan yet to score.
After the entire morning session was delayed by rain and a wet outfield, proceedings got underway after lunch with the Windies quickly cleaning up the Bangladesh tail with the wickets of Mehidy Hasan (4), Ebadot Hossain (0), Shoriful Islam (0) and Khaled Ahmed (0).
Nurul Hasan was the only batsman to offer any resistance for Bangladesh with an aggressive 60 not out off 50 balls as the tourists were dismissed for 186 with Kemar Roach, Alzarri Joseph and Jayden Seales doing the damage with three wickets each.
Needing just 13 runs to win, West Indies openers Kraigg Brathwaite and John Campbell made short work of the total to secure the win and a 2-0 series triumph.
Final Scores: Bangladesh 234 and 186, West Indies 408 and 13-0.