Kolkata -Top-ranked India were skittled out for 172 after Cheteshwar Pujara top-scored with a gritty half-century on day three of the rain-hit first Test against Sri Lanka on Saturday.
After the highly rated Indian top-order came undone on a fast-paced wicket at Kolkata's Eden Gardens, the lower order rallied to take the hosts beyond the 150-run mark.
Wriddhiman Saha (29) and Ravindra Jadeja (22) shared a 48-run sixth-wicket stand while number-10 Mohammed Shami chipped in with a quickfire 22-ball 24.
Pace spearhead Suranga Lakmal finished with figures of 4-26 after taking three wickets on day one to justify Sri Lanka's decision to field first.
India's innings lasted 59.3 overs with bad weather allowing only 11.5 overs to be bowled on the opening day and 21 on day two.
It was Lakmal's new-ball partner Lahiru Gamage who provided the visitors early delight Saturday after bowling out Pujara, who could only add five runs to his overnight 47.
Pujara, who registered his 16th Test fifty with a boundary off veteran spinner Rangana Herath, was done in by a superb in-dipper from Gamage that rattled the batsman's stumps.
The right-left batting combination of Saha and Jadeja then played sensibly to try and take the attack to the opposition bowlers.
While Saha was calculated during his 83-ball knock, Jadeja smashed two fours and the only six of the innings during his 37-ball stay.
Both the batsmen became victims of Dilruwan Perera's off-spin, falling in the space of two deliveries as India slipped to 127-6.
Shami played a useful cameo to give the hosts some vital runs while putting on crucial partnerships with Bhuvneshwar Kumar (13) and Umesh Yadav, six not out.
Dinesh Chandimal's Sri Lanka, despite being huge underdogs against the top-ranked hosts, are eyeing their first win on Indian soil during the three-match series.