Stand-in captain Virat Kohli struck 102 off 83 balls in the Port of Spain to help keep his team's hopes of reaching the final alive.
India had given the West Indies a chase of 312 following their first innings.
The West Indies mustered their first wicket after India accumulated 123 runs when Dwayne Bravo caught Dhawan out from a Kemar Roach bowl.
It was a largely one-sided affair, but the West Indies offered some late resistance through Roach and Sunil Narine, who notched up 34 and 21 respectively.
The victory gives India five points from three games played ahead of their showdown with Sri Lanka on Tuesday.