Umesh Yadav has struck two blows in the second session as West Indies were left reeling at 6-76 in 27 overs at tea on day three of the second Test against India.
Following 6-88 performance in the first innings, the pace bowler took 3-32 to rock the tourists' second innings, with the visitors inching ahead to lead by just 20 runs.
Yadav, who was on a hat-trick from the first innings, missed that opportunity but struck on the second ball of the innings, with Kraigg Brathwaite (0) caught behind.
With Shardul Thakur out injured, spin was introduced early and Ravichandran Ashwin made the West Indies' batsmen skittish on the three-day-old pitch.
The score was 6-2 when Kieran Powell (0) was caught at slip off Ashwin, albeit television replays sided with the bowler in the absence of conclusive proof Ajinkya Rahane dropped the chance.
Shai Hope (28) played with some resolve but his teammates continued to struggle against India's spin troika.
Shimron Hetmyer (17) tried to hit out against Kuldeep Yadav (1-26) and was caught at backward point. Four balls later, Ravindra Jadeja (1-4) had Hope caught at slip.
First innings centurion Roston Chase (6) tried to dig in again as he put on 23 runs with Sunil Ambris (20 not out).
But Umesh Yadav returned with another burst just before the tea break on Sunday, removing the stumps of Chase and Shane Dowrich (0) successively to tilt the game decisively towards India.