Veteran left-arm spinner Rangana Herath grabbed seven wickets as Sri Lanka stunned India by 63 runs in the thrilling first Test in Galle on Saturday.
The tourists, set a victory target of 176 runs, were skittled for 112 in their second innings after lunch on the fourth day to give Sri Lanka the lead in the three-match series.
Ajinkya Rahane top-scored with 36, but only three other batsmen reached double figures as India folded up in just 49.5 overs.
In a remarkable turnaround, Sri Lanka won after being reduced to 5-95 in their second innings before lunch on the third day, still 98 runs away from avoiding an innings defeat.
Dinesh Chandimal smashed a brilliant 162 off 169 balls, sharing valuable partnerships with Lahiru Thirimanne (44) and Jehan Mubarak (49) to lift the hosts to 367.
It was only the second time Sri Lanka had defended a target of less than 200. Pakistan, set 168 to win at Galle in 2009, were shot out for 117 with Herath claiming four wickets.
India’s hopes of celebrating Independence Day in style vanished in a dramatic morning session in which six wickets fell after the tourists started the day at 1-23.
The 37-year-old Herath picked up four of those wickets to finish with seven for 48 in 21 overs, his 22nd five-wicket haul in 61 Tests.
Young off-spinner Tharindu Kaushal backed his senior partner by taking the other three wickets for 47 runs.
India made a slow start, adding seven runs in six overs to their overnight score, five of them coming off the bat of nightwatchman Ishant Sharma.
Herath, who was brought on to bowl the seventh over, struck with his first delivery by trapping Ishant leg-before for 10.
Herath, who had dismissed Lokesh Rahul on Friday evening, claimed his third wicket soon after when he bowled Rohit Sharma for four to reduce India to 3-34.
Eleven runs later Kaushal removed Indian captain and star batsman Virat Kohli for three as Kaushal Silva took a low, sharp catch at forward short-leg off a bat-pad edge.
First-innings century-maker Shikhar Dhawan plodded for 83 deliveries to make 28 when he fell to a superb return catch by Kaushal, who dived to his left on the follow-through to pluck the ball.
Herath then had Wriddhiman Saha stumped by Chandimal for two and forced Harbhajan Singh to edge a catch to Silva as India slipped to 7-67 in the 33rd over.
India, who went to lunch at 7-78, lost Ravichandran Ashwin in the third over after resumption when Dhammika Prasad held a low catch at mid-on to give Herath his sixth wicket.
Herath had Rahane caught in the slips by skipper Angelo Mathews before Kaushal sealed victory by having Amit Mishra caught at silly-point.
The second Test starts at the P. Sara Oval in Colombo on August 20.