Courtesy Kohli's 103, his second ton of the series, India declared their second innings at 352 for seven, leaving the hosts an improbable victory target of 521 runs.
Kohli's runs came off 197 balls and was studded with 10 boundaries. He shared 113 runs for the third wicket with Cheteshwar Pujara (72), who also returned to form after a dismal outing in the second Test.
Hardik Pandya also made an useful contribution after his maiden five-wicket haul, smashing a run-a-ball 52 with the help of seven boundaries and a hit over the fence.
Kohli seemed in no mood to drag the innings any further and decided to declare the innings, handing his bowlers nine overs to go full throttle.
But Alastair Cook (9 not out) and Keaton Jennings (13 not out) played cautiously to fend off the nine overs with England still needing another 498 runs for win with two full days of play remaining.
Earlier coming onto bat after tea, Kohli got a life on 93 when Jennings missed a catch at gully off James Anderson (1/55) in the 91st over. Soon after, the Indian skipper celebrated his hundred off 191 balls.
But Kohli failed to capitalise on the chance as he was trapped lbw by Chris Woakes (1/49) soon. It triggered preparations for declaration in the Indian camp as Rishabh Pant (1) walked out to bat at number six. He tried to attack but only edged to give a catch at slip off Anderson.
Ajinkya Rahane (29) and Pandya then put on 47 runs for the sixth wicket, before Adil Rashid (3/101) bowled the former. India's lead crossed 500 with Mohammed Shami (3) being the last man to be dismissed before Kohli declared the innings.
After lunch, Kohli continued his sedate partnership with Pujara as the duo went about their business in style. The pair looked in no hurry as they continued grinding the English bowling attack.
India crossed 200 in the 63rd over with Kohli and Pujara bringing up their 100-run partnership off 270 balls.
Kohli also crossed the 400-run mark in this series, becoming only the second Indian captain after Mohammad Azharuddin (426) to do so against England. Overall, he is the sixth Indian batsman to achieve this feat. Things were moving along nicely when Pujara edged a Stokes' delivery to Cook at first slip against the run of play. Pujara faced 208 balls and struck nine fours.
Kohli and Rahane then batted with purpose as India's lead continued to swell with time. England took the second new ball as soon as it became available, but to no avail.
Earlier, starting at the overnight score of 124 for 2, India had perfect conditions for batting on a humid and warm day and Kohli and Pujara looked to grind and play for time with no hurry whatsoever.
It could be seen in the manner Pujara took his sweet time to get going, even as Kohli set off quickly for the day. They scored 70 runs during the wicketless session.
Anderson though bowled a superb spell in the morning and didn't let the batsmen score easily. He bowled seven overs in the first hour of play, including three maidens and gave away only seven runs.
Woakes and Stokes kept things tight at the other end, particularly the latter, as the two batsmen were troubled by awkward bounce on a few occasions.
First Published: August 21, 2018, 9:04 AM IST