Chasing 231 for victory, the visitors were 75-7 when bad light stopped play at Kolkata's Eden Gardens in the first of three Tests.
Dasun Shanaka (six not out) and Rangana Herath (0) played out the final few deliveries of a nervous final session which saw Sri Lanka lose five quick wickets.
Paceman Kumar struck in the very first over when Sadeera Samarawickrama chopped a delivery onto his stumps and was out for nought.
Mohammed Shami, who shared the new ball with Kumar, then had left-hander Lahiru Thirimanne bowled for one as the visitors slipped to 2-2 in 3.3 overs.
Umesh Yadav, India's third seamer, joined in after tea to send Angelo Mathews trudging back to the pavilion after trapping the former captain lbw for 12.
The match got even more interesting when Shami bowled skipper Dinesh Chandimal for 20 and Kumar trapped Niroshan Dickwella lbw for 27. Kumar returned impressive match figures of 8-96.
Skipper Kohli earlier raised India's hopes of a win with an 119-ball 104 that took the attack to the opposition after some menacing bowling in the first session.
Fast bowlers Suranga Lakmal and Shanaka took three wickets each to rattle the Indian top and middle-order after the hosts resumed the day on 171-1.
But Kohli, who registered his 18th Test century, displayed his class in taming the attack towards the end of the innings, hitting 12 fours and two sixes.
The star batsman let out a roar and pumped his fist after getting to 100 with a six off Lakmal, who ended with match figures of 7-119.
India's Cheteshwar Pujara, who fell to Lakmal in the morning session, joined an elite list of international batsmen to have batted on all five days of a Test.
Pujara, who top-scored with 52 in India's first innings score of 172, put on his batting pads on each day of the game — one which was marred by inclement weather.
Only 32.5 overs were possible on the first two days before the weather cleared for the final three.
Sr Lanka's premier spin bowler Herath also made an impact but with the bat — hitting 67 in Sri Lanka's first innings of 294.
The action now shifts to the second match in Nagpur starting Friday.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ