India were off to a horror start in their second innings, losing three early wickets, after Ishant Sharma had claimed five wickets to bowl out Sri Lanka for 201 to give the visitors a 111-run first innings lead, on Day 3 of the third and final Test at the Sinhalese Sports Club, in Colombo, on Sunday.
India were reeling on 21 for three in 8.1 overs before played was called off early due to rain with Virat Kohli (1 not out) and Rohit Sharma (14) at the crease.
The visitors lost a wicket in the first over of the innings when first-innings centurion Cheteshwar Pujara was bowled for a duck by pacer Dhammika Prasad, who bowled with an injured left hand.
K L Rahul perished in the same fashion as in the first innings when he offered no stroke to an incoming delivery from Nuwan Pradeep to be bowled for two, the same score as in the first innings.
Ajinkya Rahane also failed for the second time in the match when he was trapped leg before wicket by Pradeep for eight to lead Sri Lanka's superb fightback with the ball.
Earlier, Sri Lanka were bowled out for 201 in their first innings. Responding to India's first innings score of 312, Sri Lanka avoided the follow-on courtesy of Kusal Perera's half-century as the debutant stroked a quickfire 55 from 56 balls.
He got good support from Rangana Herath, who made 49, as the duo added 79 runs for the seventh wicket to rally Sri Lanka, who were tottering on 47 for six at one stage.
Pace spearhead Ishant was the pick of the Indian bowlers as he took five for 54 in 15 overs, while Stuart Binny and Amit Mishra took two wickets each.
Ishant struck twice in the post lunch session, picking up Lahiru Thirimanne for naught and the dangerous-looking Perera to break Lanka's back.
Mishra was lucky to get the wicket of Tharindu Kaushal (16) leg before wicket as the replays clearly showed the batsman got an a thick inside edge before the ball hit the pads.
Dhammika Prasad, who was forced to retire hit after he was struck by an Ishant bouncer, hit a quickfire 27 from 23 balls to help Sri Lanka get past the 200-run mark.
Perera was dropped on nine by KL Rahul at second slip and he made India pay for that lapse. The left-handed went on the attack against the Indian bowlers and raced to his fifty off only 49 balls.
There were some heated words exchanged between Ishant and the two batsmen, and matters came to a head in the 34th over, after Perera mis-hit one and was caught at mid-off by Virat Kohli.
In this interim, India had conceded 109 runs for the loss of one wicket, even as Kaushal was scalped by Mishra (1-19) close to the break.
Herath was unlucky to miss out on a half-century as he was brilliantly caught by debutant wicketkeeper Ojha for 49, who then stumped Prasad off Mishra to end Sri Lanka's first innings, in the 53rd over.
At one stage, India were firmly in the driver's seat as they reduced Sri Lanka to 47 for five at lunch.
Sri Lanka's slide, after facing a mere 18 overs, happened after Pujara (145 not out) guided his side to a healthy score on a pitch not easy for batting.
Pujara became the 45th batsman overall and the fourth Indian batsman in Test cricket to carry his bat through an innings.
The hosts were in trouble very quickly as they tried to negotiate nearly an hour's play before lunch.
Ishant Sharma (2-12) and Umesh Yadav (1-20) exploited the still-fresh pitch and put the new Kookaburra ball to good effect.
The former could have had a wicket in the first over itself, when he induced an edge off Upul Tharanga on 0, but K L Rahul dived in front of first slip and failed to hold on to a tough catch.
The two pacers continued to bowl well and beat the batsmen on umpteen occasions, but that one chance wasn't coming.
It finally did in the fifth over, when Tharanga (4) edged once again and this time Rahul didn't make any mistake. There was a slight doubt of a no-ball but the decision went in the bowler's favour.
In the next over, Yadav bowled Kaushal Silva (3) after the opener dragged a short ball onto his stumps. Dinesh Chandimal (23) came out to bat at number four then and played some attacking shots.
He wasn't fazed by the Indian bowling and hit five quick boundaries off the 27 balls he faced. But just when it looked he was set to play a counter-attacking innings like in Galle, he was adjudged LBW to Stuart Binny (2-14) in the 12th over.
The ball hit him high on the back-thigh and it was a poor decision from umpire Rod Tucker as the delivery looked to have carried over the stumps.
The misery continued for Lanka thereafter as skipper Angelo Mathews (1) was caught behind off Ishant in the 17th over. Binny took his second wicket in the next over, Dimuth Karunaratne (11) edging to second slip as Rahul took a comfortable catch.
Pujara became the fourth Indian batsman to carry his bat through after Sunil Gavaskar (in 1983 at Faisalabad vs Pakistan), Virender Sehwag (in 2001 at Galle vs Sri Lanka) and Rahul Dravid (in 2011 at the Oval vs England).
India's first innings came to an end in the seventh over of the day. Starting at their overnight score of 292 for eight, the visitors were able to add 20 runs before they were bowled out. Ishant Sharma (6) was bowled by Rangana Herath (3-84) in the second over of the day as the tail-ender went for a wild shot but was beaten all ends up.
Four overs later, he also bowled Umesh Yadav (4) while India crossed their 300-mark in the 98th over. Dhammika Prasad (4-100) finished as Lanka's best bowler on display, while Nuwan Pradeep (1-52), Angelo Mathews (1-24) and Tharindu Kaushal (1-45) also took a wicket each.