Resuming at the overnight score of 264 for five, India lost Rishabh Pant (27) on the opening delivery of the day. The young Indian stumper was cleaned up by West Indies skipper Jason Holder (4/62) with an inswinger as the batsman leaned for a drive.
Coming on to bat at the overnight score of 42, Vihari stuck to his task and held one end together to go into the break unbeaten on 84 off 158 balls, 16 runs shy of his maiden century. Thereafter, overnight batsman Vihari and the new man in, Ravindra Jadeja played according to the situation to nullify any threat from the West Indies bowlers.
Vihari, who resumed his knock at 42, notched up his fifty in 96 balls with the help of an inside-edge boundary off Holder in the 97th over of the innings.
Jadeja did all the hard work but gave away his wicket when it mattered. He played a patient knock of 16 off 69 balls but just when it was time to carry on, he top-edged a Rahkeem Cornwall (2/97) delivery to Darren Bravo at mid-on while going on for a big slog.
Vihari and Jadeja shared 38 runs off exactly 10 overs for the seventh wicket.
An over later, Vihari got a big reprieve when he was dropped by John Campbell off Cornwall at first slip.
To add to West Indies' wounds, Vihari picked up two boundaries in the remaining balls of Cornwall's over to take India forward.
Vihari and Ishant later added unbeaten 34 runs for the eight-wicket to take India home without any further damage.