Kohli reached his hundred with a single off the off the fifth ball of the 119th over, bowled by Suranga Lakmal.
At stumps, Lahiru Thirimmane (9 not out) and Dimuth Karunaratne (11 not out) were holding the fort but have a long way to go to save the Test.
India were 507 for four at tea, stretching their first innings lead to 302 in Nagpur.
At lunch, India's lead was 199.
Ishant Sharma celebrates with his teammates after picking up a wicket on the first day of second Test in Nagpur.
5- Number of Test double centuries scored by Virat Kohli as a captain, the most by any captain equalling Brian Lara. 24 scores registered by other captains separate Lara from Kohli, whose highest score as captain is 235, scored against England in Mumbai past year.
7- This is India's seventh 600+ total in Test cricket under Virat Kohli. In the list of most number of global hundreds, Kohli sits at number eighth behind Brian Lara (53), Mahela Jayawardene (54), Hashim Amla (54), Jaques Kallis (62), Kumar Sangakkara (63) Ricky Ponting (71) and master blaster Sachin Tendulkar (100), who is the only cricketer to get 100 worldwide hundreds.
10- Virat Kohli scored his tenth global hundred this year, the most by any captain in a calendar year surpassing Ricky Ponting's 9 centuries in 2016.
Kohli is also the fifth fastest batsman, in terms of innings, to score his 19th century, behind Don Bradman, Sunil Gavaskar, Matthew Hayden and his Australian counterpart Steve Smith.
Kohli is also the only Indian captain to have scored 12 Test centuries as captain.
30- India have crossed 600 in Tests for the 30th time.
India were 404 for 3 at Lunch with Kohli batting at 123 and Rahane yet to score. Kohli overtook Kapil Dev's 163 which the former skipper scored in Kanpur in 1986.