Charles led the West Indies chase with a rollicking 97 as the hosts held their nerve to register a one-wicket win at Jamaica.
Kingston: Opener Johnson Charles struck 97 to help West Indies register a thrilling one-wicket victory over India in the second one-day international of the Celkon Mobile Cup tri-series on Sunday.
Charles smashed eight fours and four sixes off 100 balls and had a fourth-wicket stand of 116 with Darren Bravo to lift the hosts after they had slipped to 26 for 3 in pursuit of India's 229 for 7 off 50 overs. Left-hander Bravo hit 55 off 78 balls.
After India fought back strongly to break that partnership, Kemar Roach got the winning runs in an unbeaten last wicket stand of 10 with Tino Best, who scored three not out.
India's bowling was led by Umesh Yadav, who ripped through the top order and ended with 3 for 43. Offspinner Ravichandran Ashwin grabbed 2 for 44 and Ishant Sharma contributed 2 for 51.
The West Indies' chase of India's modest total was threatened early by the lively fast bowler Yadav, who dismissed Chris Gayle and Devon Smith in successive overs.
When Bhuvneshwar Kumar claimed Marlon Samuels to a deflection onto his stumps, India were on top 26 for 3 in the fifth over. But Charles and Bravo turned things around with their assured partnership.
Charles was first to his fifty, off 60 balls, while Bravo soon joined him as the pair brought their side within 88 of their target.
Ashwin kept the visitors in contention with the key scalp of Bravo, who miscued a pull straight to midwicket at 142 for 4.
The West Indies innings then started to slip as captain Kieron Pollard and Denesh Ramdin fell quickly and India had the momentum at 161 for 6.
Charles, in sight of a third one-day century and seeking to guide his side home, fell three runs short as Yadav returned to strike for India. His attempted lofted shot over the off side could only pick out Ishant Sharma on the edge of the circle at mid-off.
Charles' dismissal left the tail with 19 runs to score with two wickets remaining before Roach and Best brought the hosts home.
Earlier, Rohit Sharma's 60 off 89 balls with four fours and a six helped India to 229 for 7 off 50 overs. The West Indies bowlers were led by Roach and Sammy, who both enjoyed figures of 2 for 41, while Best recovered from a wayward start to grab 2 for 52.
India, sent in by stand-in West Indies skipper Pollard, were quickly derailed by Roach and Sammy. Shikhar Dhawan, the left-hander fresh off the Player-of-the-Tournament award in the ICC Champions Trophy, fell for 11, driving a return catch to Roach, who held it at the second attempt at 25 for 1.
It was 39 for 2 in the 10th over when Virat Kohli edged Sammy to first slip where Gayle dived to his right to pluck a one-handed catch.
Sharma and Dinesh Karthik revived the innings in a measured third wicket stand of 59. But Marlon Samuels struck when the stand was emerging, grabbing a return catch to send Karthik packing for 23 off 56 balls.
Sammy completed a fine spell with the wicket of Sharma, who lofted down long-off at 124 for 4. Captain MS Dhoni and Suresh Raina ensured India got to a respectable total through a fifth wicket stand of 58 off 75 balls.
But West Indies cut both short before they could engineer a final surge. Raina chased a wide ball from Roach to be caught behind for 44. The left-hander faced 55 balls and hit four fours.
Dhoni, who seemed to injure his right leg while running a single, batted on but fell soon afterwards as he missed a swing at Best and had his leg stump rocked.
The innings got a late boost from Kumar, who hit a six and a four in Sunil Narine's final over that cost 17.