The hosts were 404 for three at lunch in Nagpur after resuming the day on 312-2 in reply to Sri Lanka’s 205.
Kohli, 123 not out at the break, compounded Sri Lanka’s misery with a dominant 183-run stand with overnight partner Cheteshwar Pujara, who made 143.
Pujara was finally bowled by paceman Dasun Shanaka a little before lunch after adding 22 to his overnight 121. Ajinkya Rahane had joined Kohli at the crease.
Kohli, who was 54 overnight, went on the attack to register his 19th Test century and the second of the series.
— BCCI (@BCCI) November 26, 2017
Pujara, who faced 362 balls after coming in to bat on day one, was happy to play second fiddle to his skipper who has hit 13 boundaries in his 161-ball stay.
A 209-run second-wicket partnership between Pujara and Murali Vijay, who made 128, had put India in the driver’s seat on Saturday.
Top-ranked India are looking to go one-up in the three-Test series after the rain-hit first match ended in a draw in Kolkata.
India captain @imVkohli has also broken the record of Ricky Ponting (9 in 2005 and 2006) and @GraemeSmith49 (9 in 2005) for the most centuries by a captain in a calendar year! #INDvSL #howzstat pic.twitter.com/IdBaUlVs2R
— ICC (@ICC) November 26, 2017
An Indian women’s state cricket team managed just two runs in an official 50-over match, one of the lowest totals ever recorded.
Opening bat Menka scored one run and the other was a wide as nine of the Nagaland under-19s were out for ducks against Kerala.
Kerala then took just one legitimate delivery to win by 10 wickets, with 299 balls to spare.
Nagaland, debutants in the Board of Control for cricket in India (BCCI) Super Series tournament, did at least win the toss in the game on Thursday.
They chose to bat and Menka scored one run off 18 balls before she was caught in the sixth over. It triggered the mother of all collapses as Nagaland were bowled out inside 17 overs – 16 of them maidens.
A total of two didn’t give the Nagaland bowlers much room for error, and they started badly when Deepika Kaintura sent down a wide with her first ball.
Kerala’s Ansu Raju then put Nagaland out of their misery by hitting a four off the first legal ball.
Nagaland had already been involved in an unusual game when their bowlers sent down 42 wides on November 1 against Manipur – who bowled 94 wides of their own.
Their total of two against Kerala is smaller than the six scored by the Bs against England in 1810, which is listed as the lowest in any domestic competition by ESPNCricinfo.com.
In international 50-over cricket, Zimbabwe holds the dubious record for the lowest score, having been bowled out for 35 against Sri Lanka in 2004 in Harare.
Provided by AFP Sport
Paceman Ishant Sharma took two wickets including Karunaratne for 51 to hurt the visitors, who opted to bat first on a green Nagpur pitch.
Sri Lanka were 151-4 at tea with skipper Dinesh Chandimal, on 47, and wicketkeeper-batsman Niroshan Dickwella, on 18, at the crease.
Chandimal was involved in a crucial, 62-run fourth-wicket stand with Karunaratne as the visitors attempted to steady the innings after losing three early wickets.
The left-handed Karunaratne, who hit six boundaries in his 147-ball stay, went on to register his 14th Test fifty before being trapped lbw by Sharma.
They were hard-earned runs for the left-handed Karunaratne, who got two reprieves on 17 and 21 in testing conditions.
Ravindra Jadeja, who had got Karunaratne stumped on a no ball before lunch, was also rewarded for his persistence after trapping Angelo Mathews lbw for 10.
Earlier, the visitors lost opener Sadeera Samarawickrama for 13 and Lahiru Thirimanne for nine to take lunch at 47-2 after a tough morning session.
The two teams are fighting to go ahead in the three-Test series after the opening game ended in a draw at Kolkata’s Eden Gardens.
— BCCI (@BCCI) November 24, 2017