England spinner Dom Bess claimed four wickets to leave India struggling to avoid the follow-on despite Rishabh Pant's blazing 91 on day three of the opening Test on Sunday.
India reached 257 for six at stumps in response to England's 578 in Chennai.
Washington Sundar, on 33, and Ravichandran Ashwin, on eight, were batting with an ubroken stand of 32. India need another 122 to avoid the follow-on.
Fast bowler Jofra Archer removed openers Rohit Sharma and Shubman Gill in the morning session and Bess soon took over with his off spin to get key wickets including skipper Virat Kohli for 11.
Pant smashed his fourth Test fifty in 40 balls to counter the England bowling but became Bess' fourth victim after he miscued a lofted hit to get caught by Jack Leach at deep cover.
The wicketkeeper-batsman hit nine fours and five sixes, which came against Leach's left-arm spin, in his 88-ball blitz.
Pant, who was one of India's heroes in their Test win in Australia, helped India recover from 73 for four with a 119-run stand with Cheteshwar Pujara, who made 73.
Pujara was caught at short mid-wicket with the ball coming off a rebound from the shoulder of the fielder ducking at short leg.
Bess got Kohli's prized scalp with a ball outside the off stump that spun sharply and the Indian captain pressed forward only to get an inside edge for a catch at short leg.
The finger spinner struck again in his next over with the wicket of Ajinkya Rahane for one as England skipper Joe Root took a stunning one-handed catch diving towards his left at cover.
Earlier Archer had Sharma caught behind for six in the fourth over. James Anderson took a low diving catch to cut short a promising start by Shubman Gill, who made 29 off 28 balls, including five boundaries.
England's innings, which resumed on 555-8, ended inside the first hour of play. Paceman Jasprit Bumrah and off-spinner Ashwin took three wickets each.
Root on Saturday became the first player to score a double century in his 100th Test before being dismissed for 218.
Scoreboard
Scoreboard at stumps on day three of the opening Test between India and England in Chennai on Sunday:
England 1st innings (overnight 555-8, Bess 28, Leach 6)
R. Burns c Pant b Ashwin 33
D. Sibley lbw b Bumrah 87
D. Lawrence lbw b Bumrah 0
J. Root lbw b Nadeem 218
B. Stokes c Pujara b Nadeem 82
O. Pope lbw b Ashwin 34
J. Buttler b Sharma 30
D. Bess lbw b Bumrah 34
J. Archer b Sharma 0
J. Leach not out 14
J. Anderson b Ashwin 1
Extras (b7, lb17, nb20, w1) 45
Total (190.1 overs, all out) 578
Fall of wickets: 1-63 (Burns), 2-63 (Lawrence), 3-263 (Sibley), 4-387 (Stokes), 5-473 (Pope), 6-477 (Root), 7-525 (Buttler), 8-525 (Archer), 9-567 (Bess), 10-578 (Anderson)
Bowling: Sharma 27-7-52-2 (nb5), Bumrah 36-7-84-3 (w1, nb7), Ashwin 55.1-5 -146-3 (nb2), Nadeem 44-4-167-2 (nb6), Sundar 26-2-98-0, R. Sharma 2-0-7-0
India 1st innings
R. Sharma c Buttler b Archer 6
S. Gill c Anderson b Archer 29
C. Pujara c Burns b Bess 73
V. Kohli c Pope b Bess 11
A. Rahane c Root b Bess 1
R. Pant c Leach b Bess 91
W. Sundar not out 33
R. Ashwin not out 8
Extras (b4, lb1) 5
Total (74 overs, 6 wickets) 257
Fall of wickets: 1-19 (R. Sharma), 2-44 (Gill), 3-71 (Kohli), 4-73 (Rahane), 5-192 (Pujara), 6-225 (Pant)
To bat: I. Sharma, J. Bumrah, S. Nadeem
Bowling: Anderson 11-3-34-0, Archer 16-3-52-2, Stokes 6-1-16-0, Leach 17-2-94-0, Bess 23-5-55-4, Root 1-0-1-0
Toss: England
Umpires: Anil Chaudhary (IND) and Nitin Menon (IND)
TV umpire: Chettithody Shamshuddin (IND)
Match referee: Javagal Srinath (IND)