India captain Virat Kohli scored his 50th international century but had to settle for a draw in the first Test as Sri Lanka somehow managed to stave off defeat in a dramatic finale in Kolkata.
After Kohli's rapid 104 not out helped set Sri Lanka a token 231 to win in just over a session, India's bowlers very nearly snatched an incredible win for the hosts.
They had reduced Sri Lanka to 75-7 - as well as seeing two late out verdicts overturned on review - before fading light led to the umpires calling an end to proceedings at around 4.30pm local time.
Bhuvneshwar Kumar finished with impressive figures of 4-8 off 11 overs, while his fellow seamers Mohammed Shami (2-34) and Umesh Yadav (1-25) provided the back-up.
With those three players also sharing all 10 Sri Lanka first-innings wickets between them, India's spinners finished the match wicketless.
Earlier, India, having started the final day on 171-1 and leading by 49, powered their way to 352-8 declared with Kohli dominating after opener Lokesh Rahul had fallen early for 79.
Kohli brought up his 18th Test century - and 50th for his country in all formats - with a six before immediately declaring. He had struck 12 fours and two sixes in total, having faced 119 balls.