Kohli's 147 -- his 15th Test hundred -- and an equally confident 136 by Murali Vijay enabled India to extend their first-innings lead to 51 runs in reply to England's 400.
The unbroken eighth-wicket stand of 87 between Kohli and rookie Jayant Yadav (30) is expected to have a significant bearing on the outcome of the match.
The day, however, belonged to Kohli, who is fast becoming India's new 'Milestone Man' in every format.
En route his hundred, he completed 1000 Test runs in a calender year and also completed a personal landmark of 4000 runs in the five-day format. The 15th Test ton also took him past Gundappa Viswanath's tally of 14.
Also Read
The 241-ball knock was studded with 17 boundaries.
Apart from his stand with Jayant, he was also involved in a 116-run partnership with the other centurion Vijay, who hit 10 fours and three sixes in his patient effort that saw him face 282 balls.
If Kohli and Jayant continue in the same vein tomorrow and extend the lead past 100 runs, it will be an onerous task for the Englishmen to make a comeback as they will be batting third on a track where facing Ravichandran Ashwin and Ravindra Jadeja may not exactly be the easiest of task at hand.
(REOEPNS DEL 19)
India, in fact, suffered a mini collapse during the post lunch session after Vijay's departure.
The home team lost four wickets in 17 overs while moving from 262 to 307, but Kohli found effective lower-order partners in Jadeja (25) and Jayant to pilot India past the England score and place his team in an advantageous position.
Vijay, on the other hand, had come into this match after not doing particularly well in the previous two Tests won by India at Vizag and Mohali and after losing his second wicket partner Cheteshwar Pujara to the second ball of the day, combined forces with his captain to negate the spin threat posed by Moeen Ali and Adil Rashid.
Vijay was taken out for 136, his second ton of the series after the knock of 126 in the opening game at Rajkot, Karun Nair (13), wicket keeper batsman Parthiv Patel (15) and Ravichandran Ashwin (0) to help England wrest back the initiative.
But a stubborn Kohli held one end up to ensure the lead for the hosts, adding 41 runs with Jadeja and then continued in the same vein with Jayant Yadav.
Surprisingly, the visitors - in spite of having four pace men in the ranks - did not take the second new ball till the 130th over by which time the home team had gone past their own score.
Vijay was joined by Kohli and they batted diligently to take the team to 247 for 2 at lunch, with Vijay on 124 and Kohli on 44.
Vijay joined the ranks of Sunil Gavaskar (5 tons) and Virender Sehwag (1) as only third Indian opener to compile a hundred in 25 games at this venue and the first in 14 years after Sehwag's 147 against the West Indies in October, 2002.