Rahane scored a patient 102-run knock but young batsman Hanuma Vihari (93) missed out on his maiden Test ton by just seven runs as India declared their second innings at 343 for seven to set West Indies a stiff 419-run target.
Rahane and Vihari raised a 135-run partnership for the fifth wicket after India lost skipper Virat Kohli (51) early during the fourth day’s play.
Jasprit Bumrah and Ishant Sharma then blew away the West Indies top-order to leave them gasping at 15 for five at tea.
The hosts need 404 more runs but even surviving the final session on the penultimate day will be a huge challenge for them.
Bumrah and Ishant exposed the feeble West Indies’ batting line-up with their fiery spells as none of the home batsmen could reach double-digit.
Bumrah removed both the openers — Kraigg Brathwaite (1) and John Campbell (7) — before rattling the timber of Darren Bravo (2).
Ishant too joined the party by getting rid of Shamarh Brooks (2) and Shimron Hetmyer (1).
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.
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.
Brief Scores: India: 297 and 343/7 declared in 112.3 overs (A Rahane 102, H Vihari 93; R Chase 4/132, K Roach 1/29) West Indies 1st innings: 222 and 15 for 5 in 7.3 overs (J Campbell 7; J Bumrah 3/6, I Sharma 2/8).