The West Indies kept their hopes of winning the one-day series with India alive by cutting their deficit to 2-1 in the five-match series.
Rampaul and Narine shine in West Indies triumph
Rampaul, the fast bowler, finished with four for 57 and the debutant off-spinner Narine claimed two for 34 as the West Indies bowled India out for 244 despite Rohit Sharma's solid 95 after posting a challenging 260 for five in the match in Ahmedabad.
India now lead 2-1 in the five-match series following their victories in the opening two games, with yesterday's result also ending their 11-match winning streak in one-day internationals at home.
Darren Sammy, the West Indies captain, said: "It was a good fight back from the boys. … Sharma tried to take it away but we stuck at it. It was a team effort."
India earlier looked like restricting the West Indies to a modest total when the tourists reached 167 for four after 43 overs, but Sammy (41 not out) and Andre Russell (40) plundered 79 off the last 34 balls.
The hosts were reeling at 105 for six, after Rampaul had ripped through the home side's top order, but Sharma and Ravichandran Ashwin (31) rallied their team with a 91-run stand for the seventh wicket before Narine struck a vital blow when he trapped Ashwin leg-before.
Sharma fell shortly afterwards to a run out, but Abhimanyu Mithun (23) and Umesh Yadav (11 not out) gave some anxious moments to the West Indies with a 28-run stand for the last wicket before Rampaul ended the innings when Mithun fell to another leg-before decision.
Rampaul, the man of the match, said: "We needed to get a positive start, we needed to get early wickets. The ball swung around a little bit, not much off the pitch I think Narine really bowled well for us on debut. He kept the pressure on.
"The pressure was there when I bowled the last over, but I just backed myself to perform. Hopefully, we'll be confident after this win and ready for the battles ahead."
Virender Sehwag, the India captain, said: "When two big hitters like Russell and Sammy batting it was difficult, they were connecting well,
"I told my boys to bowl as many yorkers as they can, they tried but couldn't get perfect yorkers, but the team fought really well.
It is very heard to chase when your top order fails, in the last few games lower order is scoring more than the top order.
[While] Rohit was there, we thought we could win the game, unfortunately he got run out and missed his century too."
The fourth match in the series takes place in Indore on Friday.