Rahane played a cautious knock to register his 15th Test fifty while Pant was his swashbuckling self as he hit 10 fours and 2 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 295-7.
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.