The resilient Sri Lankan pair of Dimuth Karunaratne and Kusal Mendis displayed their best batting performance while following on to keep India at bay after a first innings debacle, guiding the hosts to 209 for 2 on the third day of the second Test.
After being bowled out for a paltry 183 in the first innings losing as many as eight wickets in a single session, No 3 Mendis (110 off 135 balls) and opener Karunaratne (92 batting, 200 balls) added 191 as the visitors could get only two wickets in the next two sessions.
While Sri Lanka still need 230 runs to avoid an innings defeat with two days left, the pitch losing a bit of bite and the effort by the top-order, should help the home team make a match out of it.
Spin twins Ravichandran Ashwin (0/79 in 24 overs) and Ravindra Jadeja (0/76 in 16 overs) looked a pale shadow of themselves, which saw them account for bulk of the Sri Lankan wickets in the first innings.
India's all-rounder Hardik Pandya's (1/12 in 5 overs) came in handy as he induced an inside edge of Mendis with Wriddhiman Saha taking a smart catch down leg-side.
With the pitch losing a bit of pace, the two Indian spinners couldn't make much of an impact after Ashwin's 26th five-wicket haul in the first innings and Jadeja's milestone 150th wicket.
Credit to the Lankan pair, who had a plan against the spinners, especially Mendis, who used the sweep shot to good effect. They were ready to use their feet, coming to the pitch of the deliveries, smothering the spin.
While Mendis attacked, it suited Karunaratne's game-plan very well as he held anchor at one end. Sri Lanka didn't look to defend as they scored at a healthy rate of nearly 3.5 runs per over.
Mendis got to his third Test century off 120 balls. He hit 17 boundaries in all while Karunaratne's patience knock had 12 fours.
Kohli did rotate his bowlers but the pacers were only used in short spells.
India’s desperation was evident as they wasted a review during the last hour of play against Karunaratne off Jadeja. The ball didn't take any edge, instead it brushed the thigh pad.
Their partnership was the second highest for the second wicket for Sri Lanka against India after 576 runs put on by Sanath Jayasuriya and Roshan Mahanama in 1997.
Earlier, Sri Lanka came out with a lot of positive intent as they reached 118 for 1 at tea after being asked to follow-on.
Post lunch, Lanka began their second innings and Kohli again opened with spin from one end, handing Umesh Yadav (1-29) and Ashwin the new ball.
Yadav bowled opener Upul Tharanga (2) in the third over as India made a quick start in their bid to win this Test.
But Karunaratne and Mendis stood firm to defy the Indian bowling. Key to their stand was seeing out Ashwin's initial spell as Mohammed Shami was soon introduced into the attack along with Jadeja.
The two batsmen left the ball well and played some brilliant strokes to keep the runs ticking along as Lanka's 50 came up in the 12th over.
India missed one chance when Shikhar Dhawan dropped a sitter at mid-on off Ashwin in the eighth over when the centurion was batting on one.
Thereafter, there were no slip-ups as he duo brought up their 50-partnership in 79 balls. Later their 100-partnership came up in 113 balls as Lanka crossed 100 in the 24th over.
Mendis also survived a caught behind appeal off Jadeja via DRS as the ball touched the thigh pad and was never even close to the edge.
Karunaratne scored his 13th Test half-century off 83 balls, while Mendis scored his 5th Test half-century off 53 balls as they countered the Indian bowling for once.
Earlier, in reply to India's mammoth 622/9 declared, Sri Lanka collapsed to 183 all out at lunch conceding their highest-ever first innings' lead in Test cricket – 439 runs, more than 419 runs against Pakistan at Galle in 2000.
Ashwin (5/69) picked up his 26th five-wicket haul in Test cricket.
Starting from overnight 50/2, it was surprising to see Ashwin not handed the ball straight away. Instead, Umesh Yadav (1-12) and Ravindra Jadeja (2-84) started proceedings, getting instant results.
Dinesh Chandimal (10) was the first to go, in the fifth over of the day, caught at square leg off Jadeja. In the very next over, Yadav had Kusal Mendis (24) caught at mid-on, striking a double body blow to Sri Lanka’s hopes of defiance on this day.
It brought Angelo Mathews (26) and Niroshan Dickwella (51) to the crease, and the duo decided to attack the Indian bowling, particularly the spinners. Together, they hit 7 fours and 3 sixes against Jadeja and Ashwin who had been introduced into the attack. They put on 53 runs for the 5th wicket taking Lanka past 100 in the 33rd over. However there weren't any more partnerships of note as they were all-out for 183 in little under 50 overs.
PHOTOS: Sri Lanka vs India, 2nd Test, Day 3
4th Test, Day 1: England reach 260-6 against South Africa
What gives confidence to injury prone KL Rahul?
When Rahane played one of the best innings