Gunaratne sustained the injury in the 14th over while fielding at second slip. He hurt his thumb while attempting a catch of India opener Shikhar Dhawan off the bowling of Lahiru Kumara.
Dhawan was batting on 31 when Gunaratne dived to his left to hold on to an edge off the Indian's bat, only for the ball to hit him on the end of the thumb.
Gunaratne left the ground clutching his wrist and he was immediately rushed to Colombo for an operation. He will take no further part in the series.
Getting a reprieve, the India opener later went on to score a career-best innings of 190.
Gunaratne's injury means Sri Lanka will bat with only 10 players in both their innings.
It is a huge blow to Sri Lanka which is already missing the services of batting mainstay Dinesh Chandimal, who was ruled out with pneumonia.
The 31-year-old Gunaratne has played just five Tests in his career, scoring 455 runs, including a century and three fifties, at an average of 56.8.
Recently, Gunaratne scored an unbeaten 80 against Zimbabwe in the one-off Test and his 121-run stand for the sixth wicket with Niroshan Dickwella helped Sri Lanka register the highest-ever run chase on home soil.
PHOTOS: Sri Lanka vs India, Galle Test, Day 1
Ashwin 49 going on 50: All the Numbers
Time to launch women's IPL?
'Would like bowling to Kohli, Root, Smith...'