India came into the match at the Sir Vivian Richards Stadium leading 2-0 in the series and were set a modest target of 190 to maintain their unbeaten run in this short campaign.
But the visitors were undone by a combination of disciplined West Indies bowling and their own inexplicable lethargy at the crease.
That pedestrian progress was typified by Mahendra Singh Dhoni's painstaking innings of 54 off 114 deliveries — the slowest of his 64 ODI half-centuries — before he fell off the last ball of the 49th over bowled by Kesrick Williams.
Dhawan stars as first India-West Indies ODI called off
That left India needing 15 runs off the final over with only two wickets in hand.
It was Williams' only success of a miserly 10-over spell but proved critical as Holder sealed the win which keeps the series alive heading into the fifth and final match in Kingston on Thursday.
He dismissed Kuldeep Yadav and Mohammed Shami in the space of four balls to finish with five for 27, his best-ever ODI figures as India folded for 178.
"At the halfway stage there were a few heads dropping in the dressing room but it took a big effort and I'm really pleased to play a part in keeping us in the series," said Holder after receiving the man of the match award. "We targeted getting wickets at the front to challenge their other batters who haven't had much work to do of late. It worked this time."
West Indies crawl over the line in low-scoring encounter
Ajinkya Rahane's excellent form at the top of the order continued with a top score of 60, but the rest of the Indian batting struggled to establish any sort of momentum as the West Indies showed discipline and purpose with the ball.
Young fast bowler Alzarri Joseph, brought into the team in place of medium-pacer Miguel Cummins, set the tone for the fightback with the wickets of Shikhar Dhawan and Dinesh Karthik.
Meanwhile, Holder removed his Indian counterpart, Virat Kohli, for the second time in as many matches via a top-edged hook.
"Our shot selection wasn't up to mark but credit to the West Indies bowlers for the pressure they put on us to force those mistakes," said Kohli in assessing his team's surprise defeat. "I am sure the guys are going to come back extra hard for the final match. We just needed a complete performance and today wasn't one."
Ashwin, Yadav make West Indian heads spin
Earlier, pacers Umesh Yadav and Hardik Pandya claimed three wickets each while wrist-spinner Kuldeep Yadav again teased and tormented the West Indies batsmen in adding two more victims to his series haul as the hosts limped to 189 for nine batting first.
While each of the top five managed to get a start, none could get past 35 as India exerted almost complete control over a line-up that lacked the inspirational spark to put the opposition under pressure.
Openers Evin Lewis and Kyle Hope were the joint top scorers with 35 apiece although their slow progress — the opening stand of 57 was broken in the 18th over — meant those who followed were required to pick up the pace.
None managed to do so for any sustained period with Pandya and Kuldeep doing the bulk of the damage to the West Indies batting line-up early on.
Lanning inspires Australia to another massive win
Umesh then ensured there was to be no threat from the reputed lower-order big-hitters as he accounted for Holder, Rovman Powell and Ashley Nurse in his second spell.
India had rung the changes for this match with Karthik replacing Yuvraj Singh in the middle-order, Ravindra Jadeja coming in as a specialist spinner for Ravichandran Ashwin and Shami making his first ODI appearance since the 2015 World Cup as Bhuvneshwar Kumar was rested.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ