Apart from Khaleel, Kuldeep Yadav ended the match with figures of 3/42, with Bhuvneshwar Kumar and Ravindra Jadeja picking up one wicket apiece. For the tourists, captain Jason Holder fought a lone battle, remaining unbeaten on 54 off 70 balls.
In 378-run chase, the Windies lost three wickets inside six overs. While Chandrapaul Hemraj gave a sitter to Rayadu off Bhuvaneshwar Kumar, Shai Hope was run out courtesy a stunning direct hit by Kuldeep from mid-on.
Matters became worse for the visitors after Kieran Powell (4) was run-out in the very next over by Kohli.
Wickets kept tumbling and the next to be dismissed was Shimron Hetymar (13), who was trapped in front by Kahleel in the 10th over, even though the batsman went for an unsuccessful review
The Indian bowlers continued their dominance as wickets kept tumbling.
The 20-year-old Khaleel was on fire as he picked up two more wickets in quick succession. He first cleaned up Rovman Powell (1) and then accounted for Samuels, who edged one to Rohit in the first slip.
India captain Kohli’s decision to bat first paid dividends as Rohit and Shikhar Dhawan strung together a 71-run partnership for the first wicket, giving India a solid start. Kohli, on the other hand, registered a rare failure with the bat after being dismissed by Kemar Roach for 16 off 17 balls.
Following Kohli and Dhawan’s dismissal, the Indian innings was steadied by a massive 211-run partnership between Rohit and Rayudu.
Rohit Sharma was adjudged man of the match.
Rayudu, on the other hand, took time to settle down, but then hammered the bowlers with his exquisite stroke-play — first in Rohit’s company and then alongside veteran Mahendra Singh Dhoni (23).
Kedar Jadhav (16) and Ravindra Jadeja (7) remained unbeaten as the hosts amassed 116 runs in the last 10 overs.
The fifth and final ODI will be played at the Greenfield International Stadium in Thiruvananthapuram on November 1.
(With PTI inputs)