Dhawan, who scored 114 against South Africa last week, hit an unbeaten 102 as India coasted to an easy eight-wicket win at The Oval.
Darren Sammy scored a rapid unbeaten 56 following Johnson Charles's impressive 60, but West Indies could only post a poor total of 233, thanks mainly to Ravindra Jadeja's first five-wicket haul in a one-day international.
From the minute they started their reply, India never looked like losing.
Dhawan and Rohit Sharma (52) shared an opening stand of 101, and Virat Kohli chipped in with 22 before Dhawan and Dinesh Khartik (51 not out) guided the Indians to their target with just under 11 overs to spare.
The result means India are now guaranteed to progress from Group B, while their biggest rivals, Pakistan, whom they face on Saturday at Edgbaston, cannot make the last four.
"It was a very good performance," India captain MS Dhoni said. "They got off to a good start in the first 10 overs, but our bowlers did well to get back into the game, and getting regular wickets was the key as it built up pressure.
"When the seamers came back for their second spells, they bowled the right length and that made the batsmen go for the big shots. We would have been happy with 230 at the start."
West Indies seamer Kemar Roach put on a superb masterclass in how to open the bowling against Pakistan last week, but he and Ravi Rampaul were on the back foot from the start yesterday.
Dhawan and Sharma averaged well over five an over in the early stages. Sunil Narine and Sammy entered the attack, but made little impact as the opening pair motored past 100 in the 16th over.
Sharma had just reached his half century when he was caught behind by Charles, who was keeping wicket in the absence of suspended Denesh Ramdin, off Narine.
Kohli scored four boundaries in 18 balls before playing on to his own stumps with the score at 127.
Karthik had an incorrect dismissal against himself overturned and India passed 150 in the 23rd over.
The umpires decided to keep the teams on the pitch even though drizzle began to fall while India were in cruise control.
India brought the 200 up in the 35th and heavier showers then began to fall, causing Aleem Dar and Tony Hill to bring the players off.
They returned 30 minutes later and Dhawan brought his ton up with a six over third man off Dwayne Bravo before Khartik passed 50 with the winning runs - a four over the covers.
Earlier in the day, the former West Indies captain Chris Gayle scored a quick-fire 21 before his opening partner Charles carried on in the same vein, reaching 60 off 55 balls before being trapped lbw by Jadeja to leave the score at 103 for two.
Jadeja then removed Marlon Samuels for one after a not out bat-pad call was overturned and Ramnaresh Sarwan soon followed when he edged the spinner to Dhoni.
Dwayne Bravo and Darren Bravo restored some stability, but the run rate had dropped hugely since Gayle and Charles departed.
The pair added 31 before Darren Bravo (35) was stumped by Dhoni after he ventured down the track to Ravichandran Ashwin.
Kieron Pollard put Ashwin into the stands twice as West Indies looked to step up the run rate, but their aggressive policy backfired when Dwayne Bravo's hook found Jadeja on the square leg boundary, leaving the batting side on 163 for six.
Bhuvneshwar Kumar caught Pollard (22) on the boundary in the 43rd over and Jadeja completed his five-wicket haul soon after following the dismissal of Narine.
Sammy then gave provided some fireworks at the end of the first session, hammering five fours and four sixes to give the Windies a glimmer of hope, but it was not enough as India cruised to their target with ease.
"Not enough runs," said Dwayne Bravo. "We wanted at least 40-50 runs more.
"You've got to give credit to the Indians – they bowled well. It was poor shot selection – by myself, also Pollard.
"We lost our way. We need to work the ball a bit more, we need to get more singles.
"Nothing was there with the ball. We definitely bowled too wide on a fast outfield here."
Follow us @SprtNationalUAE