The visitors combined disciplined bowling with sharp fielding to defend a modest total of 149 for 9, restricting Bangladesh to 135 for 8.
Alick Athanaze (52 off 33) and captain Shai Hope (55 off 36) starred with the bat, adding a crucial 105-run stand for the second wicket after Taskin Ahmed removed Brandon King early.
Despite a late collapse triggered by Mustafizur Rahman (3 for 21) and Rishad Hossain (2 for 20), the total proved enough.
Tanzid Hasan fought hard for Bangladesh with a fluent 61 off 48, but lacked support from the middle order.
Romario Shepherd (3 for 29), Akeal Hosein (3 for 22), and Jason Holder (2 for 20) bowled superbly in the death overs to seal the win.
With this result, West Indies have secured the T20I series 2–0, making the final match a dead rubber.