Ajinkya Rahane and Rishabh Pant hit unbeaten half-centuries to hand India the advantage against West Indies on day two of the second Test in Hyderabad on Saturday.
The hosts were 4-308 at stumps, trailing the West Indies by three runs. Rahane, on 75, and Pant, on 85, have put on an unbeaten 146-run fifth-wicket stand in Hyderabad.
Paceman Umesh Yadav also played a part in India's domination with his career-best figures of 6-88 that helped bowl out the West Indies for 311 early in the morning session.
In reply India were in trouble at 4-162 with West Indies skipper Jason Holder taking two wickets including his counterpart Virat Kohli's prized scalp in the afternoon session.
The right-left batting combination of Rahane and Pant ensured a wicketless final session with their contrasting batting.
Rahane played a cautious knock to register his 15th Test fifty while Pant was his swashbuckling self as he hit 10 fours and two big sixes in his 120-ball stay so far.
It was Pant's second successive 50 plus score after his 92 in the team's opening win in Rajkot.
Teenage opener Prithvi Shaw also smashed 70 off 53 balls as India mounted a strong reply only to lose to their way after lunch.
Shaw fell to left-arm spinner Jomel Warrican after hitting 11 fours and a six and Pujara went for 10 in the very next over off paceman Shannon Gabriel.
Kohli tried to steady the innings with some fluent strokeplay as he built a 60-run partnership with Rahane but was denied what could have been his 20th Test fifty.
Holder, who scored 52 in West Indies' first innings, trapped Kohli lbw for 45.
The West Indies were hit by injury to wicketkeeper Shane Dowrich early in the Indian innings, and replaced him with substitute Jahmar Hamilton behind the stumps.
Hamilton was far from convincing behind the stumps and apart from a few misses down the leg side he dropped Pant on 24 off Gabriel.
Earlier Yadav, who lost his pace partner in debutant Shardul Thakur due to a groin strain on day one, picked all the three West Indian wickets to fall in the morning after the tourists started the day on 7-295.
Roston Chase top-scored with 106 after West Indies elected to bat first. Chase, who started the day on 98, was eventually bowled by Yadav.
Yadav soon got Gabriel on the very next ball to become the first Indian quick to get six wickets on home soil after Javagal Srinath's 6-45 against New Zealand at Mohali in 1999.
India: Lokesh Rahul, Prithvi Shaw, Cheteshwar Pujara, Virat Kohli (c), Ajinkya Rahane, Rishabh Pant (wk), Ravichandran Ashwin, Ravindra Jadeja, Kuldeep Yadav, Shardul Thakur, Umesh Yada
West Indies: Kraigg Brathwaite, Kieran Powell, Shai Hope, Shimron Hetmyer, Sunil Ambris, Roston Chase, Shane Dowrich (wk), Jason Holder (c), Devendra Bishoo, Jomel Warrican, Shannon Gabriel