Nicholas Pooran safely completes a run, even as the bails are dislodged during the match at Old Trafford on Thursday. AP
Kohli top-scored with 72 to lay the foundations for India's 268 for seven after electing to bat first at Manchester's Old Trafford.
The Indian bowlers, led by paceman Mohammed Shami, then dismissed West Indies for 143 in 34.2 overs to end the West Indies' hopes of progressing.
India, who have displaced England as the top-ranked one-day team, remain the only unbeaten side in the tournament and need just one victory from their remaining three league games to guarantee a semi-finals berth.
West Indies joined Afghanistan and South Africa as the three teams to bow out of the race for the final four so far.
"We can't complain, we have just become the number one side in the world and we have been playing like that for a while now," said captain and man-of-the-match Kohli.
"Things hadn't gone our way with the bat in the last few games but we have found a way to win."
Shami, who took a hat-trick in the previous game, returned figures of 4-16, removing the dangerous Chris Gayle early after a scratchy innings from the opener.
But it was Kohli who set up the win as he became fastest batsman to reach 20,000 international runs in his 417th innings -- India's Sachin Tendulkar and Caribbean batsman Brian Lara both required 453 international innings to reach the landmark.
Wicketkeeper-batsman M.S. Dhoni and Hardik Pandya boosted the total, putting on 70 runs for the sixth wicket to punish the otherwise-disciplined bowlers.
Pandya hit 46 off 38 balls while Dhoni remained unbeaten on 56, ending the innings with a big six.
The West Indies bowlers, led by paceman Kemar Roach, had kept India in check until the latter stages, stemming the flow of runs with regular wickets.
Roach returned impressive figures of 3-36 in his 10 overs, including the wicket of India opener Rohit Sharma for 18.
Kohli, whose 82-ball knock included eight boundaries, extended his fine run of form with some eye-catching shots that charmed a partisan crowd at Old Trafford.
West Indies were in trouble early in their reply when Gayle mistimed a short ball from Shami and was caught by Kedar Jadhav to the left of mid-on after struggling to just six runs off 19 balls.
Shai Hope tried to take the Shami on and hit him for a boundary but the bowler responded by rattling his stumps with the next ball as West Indies slipped to 16-2.
It was all downhill from there for a struggling Caribbean side who failed to maintain momentum after their opening World Cup win against Pakistan.
Paceman Jasprit Bumrah and leg-spinner Yuzvendra Chahal took two wickets each.
West Indies captain Jason Holder said: "The bowlers did a fantastic job on this surface. I couldn't ask for more but we let ourselves down with the bat.
"We didn't seize the moment but I would have taken chasing 268. We didn't do it.
"We have let ourselves down significantly in this tournament. The bowlers had a reasonable campaign but our batting has been too inconsistent. This is our weakest format of the three."
Two-time champions India next play hosts England in Birmingham on Sunday.
The unpredictable English weather and some quality cricketers looking to showcase their skills on the biggest stage, the 2019 edition of the World Cup couldnt get any better.
India captain Virat Kohli is prepared to vary his World Cup attack by adopting a ‘horses for courses’ strategy that seeks to make the most of the different conditions on offer during the one-day tournament in England and Wales.
Fans mocked Indian cricket bosses after captain Virat Kohli unveiled the orange-and-dark-blue shirt that the team will wear in their World Cup match against England, saying the players would look like petrol pump attendants.
Former India captain M.S. Dhoni has completed his two-week stint with the Territorial Army in Jammu and Kashmir. A picture of him playing cricket with kids in a basketball court on a cemented pitch has been going viral on social media.
A ninth Test century from captain Dimuth Karunaratne propelled Sri Lanka to a six-wicket win over New Zealand in the first cricket Test on Sunday.
VAR denied Manchester City a win against Tottenham for the second time in four months as the visitors secured a 2-2 draw at the Etihad on Saturday despite being largely outclassed by the Premier League champions.
Al Jazira have completed the signing of Serbian defender Milos Kosanovic from Belgian Club Standard Liege. The 29-year-old has signed a two-year contract and will join up with his new team-mates in Abu Dhabi ahead of the start of the 2019-20 season.