India's innings saw Virat Kohli fall one short of a run-a-ball century but he helped India reach 288 runs from their 50 overs.
Ravi Rampaul had the batsman caught on 99, and also got the wickets of Rohit Sharma, Suresh Rainaand and Ravindra Jadeja on his way to figures of 4-60.
Sharma (12) was the first man to go, and his opening partner Shikhar Dhawan fell for 35 after being trapped trapped lbw by Veerasammy Permaul to leave India on 69-2.
Kohil, who struck nine fours during his stay at the crease, put on half-century stands with Yuvraj Singh (28) and Raina (23) for the third and the fourth wicket respectively.
His time at the crease ended shortly after Darren Sammy had Yuvraj out, leaving captain MS Dhoni to do the power-hitting in the final few overs.
India's wicket-keeper showed all his skill, striking four maximums and three more boundaries in an unbeaten 51 off 40 balls.
West Indies lost the early wicket of Johnson Charles as he was caught and bowled by Bhuvneshwar Kumar.
That left them 23-2, but a productive seventh over produced 12 runs. The Windies reached 100 without further loss as they began to make inroads on their target of 289.
Ashwin then got his second wicket of the innings, enticing Kieran Powell to come down the track and miss, allowing Dhoni to quickly whip the bails off.
Kumar struck again, this time forcing Dwayne Bravo into a rash shot that was caught by Shikhar Dhawan.
Despite India taking the wickets of Lendl Simmons (62), Jason Holder (7), and Sunil Narine for a duck, they were unable to force victory and West Indies achieved their target with just three balls remaining.