Samaraweera, who has played 57 Tests but only 29 one-dayers before this game, added 122 for the third wicket with Kumar Sangakkara (60) and 57 for the unfinished sixth with Thissara Perera, who hit a brisk 15-ball 36 not out.
"All credit to Samaraweera and Perera also played superbly," said Sangakkara, the skipper.
"Chanaka Welegedara earlier did well to bring us back into the match. I think our fielding was much better. The attitude of the players was brilliant and we were out there to win."
Off-spinner Harbhajan Singh kept up India's hopes with three wickets, including that of Sangakkara, but Samaraweera and Perera held their nerve under pressure to steer their team home.
The spinner provided the crucial breakthrough when he had Sangakkara caught by Suresh Raina in the covers, but there was no stopping Samaraweera who continued to dominate the Indian attack with a wide range of strokes.
Sangakkara also became the fifth Sri Lankan to complete 8,000 one-day runs during his 80-ball knock after Sanath Jayasuriya, Aravinda de Silva, Marvan Atapattu and Mahela Jayawardene.The Sri Lankan skipper and man-of-the-match Samaraweera built on the efforts of Upul Tharanga (30) and debutant Lahiru Thirimanne (22) who gave their side a healthy 48-run start.
Left-arm paceman Welegedara earlier helped Sri Lanka restrict India, despite a solid 74 from Yuvraj Singh. The Sri Lankan finished with 5-66, his maiden five-wicket haul in six one-day internationals.
"It was always going to be difficult to defend 280. We knew we had to pick early wickets, but after the first 10 overs there was nothing for the bowlers," said India captain Mahendra Singh Dhoni.
India, put in to bat, were struggling at 71-3 following a three-wicket burst from Welegedara before Yuvraj propped up the innings with a 99-run stand for the fourth wicket with Dhoni (37).
Welegedara removed Gautam Gambhir (eight), Virat Kohli (nine) and Virender Sehwag (47) in his first spell before accounting for Raina (35) and Zaheer Khan (two) in the second.
Sehwag smashed nine fours in his impressive 31-ball cameo before being caught at mid-off by Thirimanne off a leading edge. Yuvraj was more aggressive than his captain and reached his half-century in style, lofting part-time spinner Thilina Kandamby over long-on for a six.
He fell in a bid to step up the run-rate, caught in the deep off paceman Perera after hitting two sixes and six fours.
Ravindra Jadeja (39) and Raina then helped India set a challenging target with a 65-run stand for the sixth wicket.
Each team will play four league matches before the top two qualify for the final on January 13.