Dom Bess took four wickets as England survived Rishabh Pant's counter-attack to end day three of the first Test in Chennai 321 runs ahead of India in an entertaining contest.

England were bowled out for 578 and India, after initially toiling, closed 257-6 thanks to a sparkling knock from Pant at M. A. Chidambaram Stadium.

Bess snared home skipper Virat Kohli for 11 and vice-captain Ajinkya Rahane for one, before putting an end to Pant and Cheteshwar Pujara's rearguard, leaving England in a strong position to take the lead in the four-Test series.

The tourists added a further 23 runs for their final two wickets in the opening hour of Sunday's session, with Bess (34) falling lbw to Jasprit Bumrah and James Anderson missing a sweep against Ravichandran Ashwin for a single run.

India's task of chasing down England's tally was made all the more difficult when reduced to 154-4 at tea, including the loss of Kohli for just 11 when caught at short-leg by the bowling of Bess.

Kohli's dismissal came after Rohit Sharma was sent packing by Jofra Archer for six and Shubman Gill (29) was undone by Anderson's diving catch after averaging a run-a-ball up to that point.

Bess rammed home England's advantage by taking Rahane, who went to a superb Joe Root catch after chipping a drive to short cover, but India - 73-4 at that point - finally steadied the ship through Pujara and Pant.

Pujara racked up 11 fours from 143 balls en route to 73, though it was Pant who helped make a more telling dent in England's tally with nine fours and five sixes as he targeted the spin of Jack Leach.

However, Bess returned and took both Pujara and Pant, the latter being caught at deep extra by Leach for 91 from 88 balls.

Ashwin and Washington Sundar frustrated England late in the day, ending the session on eight and 33 not out respectively.