Wickets fell around him but the Indian skipper kept his calm and raced to his 18th Test century.
Kohli’s 119-ball century is his quickest in Tests, bettering the 129-ball century vs New Zealand at Wellington in February 2014.
Keshavan thus became the first Indian to have qualified for PyeongChang Winter Games in luge.
Virat Kohli became the second Indian batsman after Sachin Tendulkar to register 50 international hundreds.
Bulgaria’s Grigor Dimitrov, who on Sunday defeated Belgian David Goffin 7-5 4-6 6-3 to win the ATP Finals title at London’s O2 Arena, jumped to the third spot.
Kohli is the also the first Indian captain to score a duck and a century in the same Test.
Dickwella was found having a few heated exchanges with the Indian bowlers.
Kohli’s unbeaten 104 — his 18th Test and 50th overall hundred saw India declaring their second innings at 352 for 8.