Rahane (102) and Vihari (93) raised a 135-run partnership for the fifth wicket after India lost skipper Virat Kohli early during the fourth day''s play.
Kohli''s scalp did not help West Indies much as Rahane and Vihari gradually took the game away from the hosts with their confident yet contrasting batting.
The moment Vihari miscued a pull which landed in the gloves of wicket-keeper Shai Hope, India declared their second innings at 343 for seven with an overall lead of 418.
It was Rahane''s first Test hundred since his 132 against Sri Lanka in August 2017 while Vihari threw away a golden opportunity to get his maiden hundred in only his fifth match.
Rahane''s patient knock came off 242 balls with just five shots to the fence but Vihari paced his innings nicely. The Hyderabad batsman hit 10 fours and a six in his 128-ball knock with an impressive strike rate of 72.65.
However, in an attempt to get some quick runs, he pulled Holder but could not connect the ball and the under-edge was easily taken by Hope.
Before that Rahane too fell while trying to score quickly, getting caught by Holder off Shannon Gabriel.
Off-spinner Roston Chase (4/132) was the most successful bowler for the hosts as he got rid of Rishabh Pant (7) after dismissing Kohli (51).
India lost Kohli in the opening session of the fourth day when his leading edge off Chase flew to John Campbell, who took the catch on second attempt.
That ended the fourth-wicket partnership between Kohli and Rahane that yielded 106 runs for India.
The other overnight batsman Rahane was joined by Vihari, who easily worked the ball around in gaps to keep the scoreboard ticking.
As soon as the new ball was available, pacers Kemar Roach and Gabriel operated in tandem but before that West Indies part-timers had bowled 41 overs in this innings alone.
While Roach and Gabriel bowled a few testing deliveries, it largely remained an untroubled stay for both Rahane and Vihari.
Opener Mayank Agarwal (16) was the first wicket to fall for India in the second innings, trapped by Chase in the 14th over although TV replays showed the ball was missing the leg stump but the batsman didn''t go for review on Saturday.
After Agarwal''s departure, KL Rahul (38) and Chesteshwar Pujara (25) added 43 runs for the second wicket to take India forward.
Rahul, however, gave away his wicket, bowled by Chase. He went across his stumps while going for a sweep, only to expose all the three stumps and the West Indian spinner stuck as the batsman failed to connect the ball.
An over later, Roach went through Pujara''s defence to reduce India to 81 for three.
Before that, India bowled out West Indies for 222 in 74.2 overs in their first innings in reply to 297 with Ishant Sharma returning with best figures of 5 for 43.
Besides Ishant, Mohammed Shami (2/48) and left-arm spinner Ravindra Jadeja (2/64) scalped two wickets a piece. PTI AT AT
Disclaimer :- This story has not been edited by Outlook staff and is auto-generated from news agency feeds. Source: PTI