Sri Lanka are down to 10 men for the remainder of the Galle Test after losing star middle-order batsman Asela Gunaratne to a thumb injury that required emergency surgery.
Gunaratne missed a catch in the slips from the edge of India opener Shikhar Dhawan's bat, catching him awkwardly on the thumb and leaving the Sri Lankan writhing in pain on the turf.
Dhawan was on 31 at the time when Gunaratne dropped the catch at second slip and hurt the left thumb on an already heavily-strapped left wrist.
Medics rushed to attend to Gunaratne, and he was later driven back up to the Sri Lankan capital Colombo for surgery on the digit.
Gunaratne was player of the match in Sri Lanka's last Test, leading them to a tense final-day victory against Zimbabwe.
He also played a leading role in Sri Lanka's victory in a three-match T20 series in Australia at the end of last summer.
While Gunaratne was en route to Colombo, Dhawan on to a century in the second session, to give India a steady start on the first day of the opening Test in Galle.
Dhawan, who had sat out India's past 11 Tests, negotiated the bowlers with confidence, hitting 16 fours in a breezy 110-ball innings.
Dhawan, whose last Test century also came at Galle when India toured in 2015, had reached his fourth Test fifty off 62 balls.
India went on to lose the Test two years ago but won the remaining two matches to seal the series 2-1.
The Indians got an early jolt when Dhawan's opening partner Abhinav Mukund edged Nuwan Pradeep behind to wicketkeeper Niroshan Dickwella.
Mukund, who opened the batting after Lokesh Rahul was ruled out with viral fever, made 12.
India handed a Test cap to all-rounder Hardik Pandya and Sri Lanka brought in debutant Danushka Gunathilaka.