Sharma, the man of the match, captured four for 53, finishing with match figures of 10 for 98, as the West Indies, chasing 281 for victory, ended on 202 for seven in their second innings when bad light stopped play.
India's hopes of a historic series-clinching victory were almost derailed as Darren Bravo, whose 73 was the top score, and Carlton Baugh, not out on 46, added 69 for the seventh wicket.
But rain, which had dogged the Test over the first four days, returned to ruin an exciting finish just when it appeared that India were on the back foot.
"We believe we had a chance of getting the target," said West Indies captain Darren Sammy.
"The coach outlined the game in stages and with 15 overs remaining, we were right on course. We lost more wickets than we had anticipated, but we believed that we could have won it."
The result meant that India hold on to a 1-0 lead in the three-match series, after they won the first Test by 63 runs at Sabina Park in Jamaica.
"It was always going to be a difficult target to achieve if you are going to get 281 in 80-odd overs," said the India skipper Mahendra Singh Dhoni.
"The outfield was very slow, so we thought we it was a good enough target, and I still think it was the right decision because you never knew how much rain you may get during the course of the day.
"We felt there were enough overs to get them out."
The rain came at the right moment for India and interrupted the West Indies' flow, stopping play for half an hour with the hosts needing 102 from the final 18.3 overs, after Baugh and Bravo started to blossom.
Sharma had Bravo caught behind, his 174-ball innings containing eight boundaries, and then added to Sammy's batting woes when he trapped him lbw for a duck in his final over.
After Sharma's next delivery to Ravi Rampaul, umpires Asad Rauf of Pakistan and Ian Gould of England ushered the players off the field.
India will now look to clinch the series when the final Test starts on Wednesday at Windsor Park in Dominica.
Their bid for victory had hit a snag before tea, when Bravo and fellow left-hander Shivnarine Chanderpaul navigated West Indies to 108 for three.
India had the hosts wobbling on 55 for three, but Bravo and Chanderpaul put on 54 for the fourth wicket either side of the break to stem the fall of wickets.
Off-spinner Harbhajan Singh moved to within two scalps of 400 Test wickets when he dubiously trapped Chanderpaul lbw for 12 shortly after tea.
Ball-tracking TV replays suggested that the batsman might have been unfortunate.
India continued to hunt for victory, but Baugh came to the crease and batted sensibly, seeming to turn the tide in the West Indies' favour before the rain stopped him and Bravo in their tracks.
Before lunch, Sharma and Praveen Kumar left West Indies shaky on 51 for two.
Sharma made the breakthrough when he had opener Lendl Simmons caught at first slip for 14, edging a loose drive, and Kumar had Ramnaresh Sarwan caught at second slip for eight, top-edging a cut, leaving West Indies 27 for two.
After lunch, Sharma removed opener Adrian Barath in the first 10 minutes, caught at third slip for 27, but West Indies showed some fight with the bat for the first time.
Earlier, VVS Laxman had been dismissed for 87 — following on from his 85 in the first innings — as India moved to 269 for six in their second innings before declaring just over an hour into the morning.