India's teenage opener Prithvi Shaw missed out on a century but stumper-batsman Rishabh Pant remained on course for a ton as the hosts looked to build a significant first innings lead against West Indies in the second and final Test on Saturday.
India dominated the morning session, needing only 6.4 overs to claim the last three West Indies wickets as the tourists folded for 311.
Shaw led India's strong reply with a rapid 70 but West Indies claimed three wickets after lunch to roar back into the see-saw conTest in Hyderabad.
Temperamentally poles apart, a cavalier Pant and a composed Ajinkya Rahane eventually wrested the initiative back with a burgeoning 146-run partnership to guide India to 308-4 at stumps.
Pant was batting on 85 at stumps with Rahane on 75 with India, who won the first Test in Rajkot inside three days, nearly wiping out the deficit.
Earlier, Roston Chase completed his fourth Test century before Umesh Yadav, who registered a career-best 6-88, dismissed him for 106.
Shaw, who smashed 134 in his debut in Rajkot last week, scored with consummate ease in stark contrast to opening partner Lokesh Rahul's struggles at the other end.
The 18-year-old Shaw played an upper cut off a rising Shannon Gabriel delivery for a six and hit spinner Jomel Warrican for three successive boundaries en route to his 39-ball fifty.
Warrican denied Shaw his second straight century, inducing the batsman into an uppish drive straight to Shimron Hetmyer at extra cover. Shaw's 53-ball blitz also included 11 boundaries.
Next man in Cheteshwar Pujara did not last long and captain Virat Kohli fell after a fluent 45, but Pant and Rahane dashed whatever hopes West Indies had of taking a first innings lead.
While Rahane focused on collecting risk-free runs, Pant's natural aggression was illustrated best when he smacked Warrican for back-to-back sixes over the same long-on area, a miscue followed by a proper whack.
West Indies' poor catching did not help their cause either.
Shaw was on 44 when Shai Hope grassed him in the slip, while substitute Jahmar Hamilton, keeping in place of the injured Shane Dowrich, spilled Pant when the batsman was on 24.