Galle: Dominant India spared Sri Lanka the ignominy of a follow-on but stretched their overall lead to 365 runs to tighten their grip on the first Test on Friday.
The tourists shot out their depleted hosts for 291 in the second over after lunch to take a 309-run first innings lead and were 56-2 when rain forced early tea on day three at the Galle International Stadium.
Abhinav Mukund was batting on 27 at the break with Sri Lanka, a batsman short following Asela Gunaratne's series-ending thumb injury on Wednesday, staring at a huge defeat.
Things could have been even worse for them but for Dilruwan Perera's gutsy 92 not out after they resumed the day on 154-5. Angelo Mathews held the key to Sri Lanka's survival and the former captain made 83 before Ravindra Jadeja (3-67) sent him back.
The spinner sent down a flighted delivery and Mathews moved towards leg and slapped it straight to India captain Virat Kohli at short cover. Mathews hit 11 boundaries and a six in his knock.
Perera enjoyed an eventful stay.
Two balls after India's appeal for a catch off his boot was turned down, Perera was adjudged leg-before to Jadeja. The decision was subsequently overturned after replays suggested the ball would have sailed over the stumps.
Perera hit Ravichandran Ashwin for a six and took a single off the next ball to bring up his fifth test fifty.
Jadeja dismissed Rangana Herath for nine when Sri Lanka's stand-in skipper attempted a reverse-sweep and managed to glove it to Ajinkya Rahane in the slip.
Debutant Hardik Pandya castled Nuwan Pradeep for 10 to claim his first Test wicket.
Perera needed eight runs for his maiden Test century when he ran out of partners. His belligerent knock included 10 boundaries and four sixes.
He returned to dismiss Shikhar Dhawan for 14 after India opted against enforcing the follow-on. Lahiru Kumara sent back Cheteshwar Pujara for 15 before rain intervened.
Stay updated on the go with Sify Live Scores App. Click here to download it for your device