Fast bowler Bhuvneshwar Kumar returned with a spectacular spell of 4/8 in the second innings but India missed a victory narrowly as the play on the fifth day was called off due to bad light at Eden Gardens on Monday.
Sri Lanka were 75/7 at stumps and the Kolkata Test concluded in a draw.
Besides Bhubneshwar, pacer Mohammed Shami took two big wickets to contribute in pace assault. Umesh Yadav also joined the celebration after claiming the wicket of Angelo Mathews (12).
Wicketkeeper-batsman Niroshan Dickwella (27) was the highest scorer in Sri Lanka’s second innings that saw no batsmen producing a remarkable batting display.
Earlier, India rode on captain Virat Kohli’s unbeaten century and declared their second innings for 352/8 to give Sri Lanka a tight target of 231 runs in 47 overs.
Completing his 18th Test hundred and 50th International century across formats, Kohli slammed two sixes and 12 boundaries in his 119-ball knock.
Besides Kohli, Shikhar Dhawan contributed with an impressive knock on 94 runs. He struck two sixes and 11 boundaries but missed a Test century when Dasun Shanaka (3/76) got him dismissed in the 38th over.
The left-handed Delhi batsman established a 166-run opening-wicket partnership stand with KL Rahul, who scored causative 79 runs from the other end.
For Sri Lanka, Dasun Shanaka and Suranga Lakmal claimed three wickets each while Lahiru Gamage and Dilruwan Perera joined the party after they took the scalp of Ajinkya Rahane (0) and Ravindra Jadeja (9) respectively.