Dambulla - Farveez Maharoof claimed a five-wicket haul that included a hat-trick and captain Kumar Sangakkara scored 73 runs to give Sri Lanka a morale-boosting seven-wicket win over India in an Asia Cup preliminary match on Tuesday, two days before the sides meet again in the final.
Batting first, India was bundled out for 209 runs in the 43rd over. Rohit Sharma was India's top scorer with 69 but seam bowler Maharoof stole the show by taking three wickets in three balls at the start of the 39th over to blow away the Indian lower-middle order.
Maharoof finished with figures of 5-42 for the second five-wicket haul of his career.
Sri Lanka chased down the target with more than 12 overs to spare, giving itself a real lift ahead of Thursday's final.
Tillakaratne Dilshan was dismissed for 24 runs with the total on 38, caught by Ravindra Jadeja off seamer Zaheer Khan. Upul Tharanga followed in similar fashion after adding 38, with India captain Mahendra Singh Dhoni taking the catch this time after another Khan delivery.
The best stand for Sri Lanka came between Sangakkara and Mahela Jayawardene, 104 runs in 109 balls which ensured victory. Sangakkara faced 82 balls and hit 10 boundaries. Jayawardene was not out on 53, having hit one six and five boundaries.
Khan had the best bowling figures for India 2-42.
India had made a steady start as openers Dinesh Karthik, who came in for the injured Virender Sehwag, and Gautam Gambhir reached 58 without loss.
Gambhir (23) was the first to go when Suraj Randiv took a brilliant diving catch at mid-wicket off seamer Angelo Mathews.
Virat Kohli made 10 before he became Maharoof's first victim by edging a delivery to wicketkeeper Sangakkara. Karthik (40 off 43 balls) then departed after Sangakkara held another catch off the bowling of Rangana Herath.
Suresh Raina (18) was trapped lbw by Herath before Dhoni (41) was run out on the last ball of the 38th over when Chamara Kapugedera's direct throw hit the stumps, a strike which precipitated the loss of four India wickets in four balls.
In the first three balls of the 39th, Maharoof had Jadeja trapped lbw, bowled Praveen Kumar and then saw Khan edge a delivery to Sangakkara to complete a hat-trick. All three batsmen went for ducks.
Maharoof bowled Ashok Dinda (2) to complete his haul before Sharma was run out with 7.3 overs remaining.
Sharma's 79-run partnership with Dhoni proved to be India's best and he hit seven boundaries in his 73-ball knock, completing in the process his fifth limited-overs half-century.