India survived some jittery moments at the fag end before snatching a thrilling 21-run win over Sri Lanka in the first One-day international of the five-match series, in Hambantota, on Saturday.
Virat Kohli cracked a superb 106 and Virender Sehwag scored 96 runs as their 173-run stand for the second wicket laid the foundation for India's imposing 314 for six after electing to bat.
Diminutive left-hander Suresh Raina (50 off 45) and skipper Mahendra Singh Dhoni (35 off 29) added valuable runs towards the end to take the side past 300-run mark.
India then restricted the hosts to 293 for nine to take a 1-0 lead in the series, which it needs to win by a 5-0 margin to reclaim the number one position in ODIs.
The hosts' resistance was built around Sangakkara's fighting 133 but he fell short of partners at the other end until he was joined by Thisara Perera, who scored a quickfire 44 off just 28 balls.
Sangakkara's knock, his 14th ODI hundred and fifth against India, came off 151 balls and included 12 boundaries.
Sangakkara and Perera rattled up a 78-run stand for the seventh wicket, giving some anxious moments to India, but their effort only reduced the defeat margin.
Sri Lanka's fight ended when Sangakkara was bowled by Umesh Yadav in 48th over and Perera was dismissed by Irfan Pathan in the penultimate over.
Pathan (2-37), R Ashwin (2-46) and Yadav (2-76) took two wickets each for India.
Kohli carried his good form of the last season into the match, scoring his fourth hundred in his last five innings. The 23-year-old Kohli blasted nine boundaries in his 113-ball knock.
Sehwag, who was given a reprieve by Tillakaratne Dilshan in the second over, had 10 boundaries in his 97-ball innings.
Both the teams will now travel to Colombo for the second match, scheduled for Tuesday.
Sri Lanka made a shaky start to the chase as they lost Dilshan (6) in the second over. He was trapped by Pathan with his second delivery.
Sangakkara and Upul Tharanga (28) somehow redeemed the innings with a 77-run stand but India never let the duo bat freely, resulting in the required run-rate mounting.
The two players had to work hard for runs as the wicket was two-paced and the outfield very slow. They managed to take Sri Lanka to 68 for one in 15 overs even as the pace trio of Zaheer Khan, Pathan and Yadav kept things tight.
Spinner Aswhin started troubling the batsmen right from the word go and soon broke the second wicket stand by having Tharanga caught in the slip cordon.
Dinesh Chandimal (13) departed without contributing much, leaving Sangakkara and Mahela Jaywardene to score at an asking rate of eight runs in the remaining 21 overs.
The last thing Sri Lanka needed at that stage was losing another wicket, but left-arm spinner Pragyan Ojha struck a deadly blow to the host by trapping skipper Jayawardene (12).
Sangakkara cut loose, smashing Zaheer Khan and Ashiwn for boundaries to move quickly into 80s. Sri Lanka required 144 runs from the last 15 overs and the pressure of scoring almost 10 runs per over got to Amngelo Mathews, whose half-heated strike ended in the hands of Gautam Gambhir (7) in the cover region.
Sangakkara kept going strong at the other end and completed his century with a single off Aswin off the last ball of the 39th over.
Perera hit a mighty 98-metre hit off Ojha and Sangakkara too started finding quick boundaries, turning the heat on India and making it a contest.
Earlier, India had a shaky start as Sehwag looked rusty early on and Gautam Gambhir (3) was sent packing after being bowled by Kulasekara in the third over.
Kohli brought up the first boundary through point and picked another boundary when he worked down a Malinga ball to fine leg in the fourth over.
Unusually restrained for long, Sehwag blasted two fours in the sixth over off Malinga. In the ninth over, the duo picked up two more boundaries before the opener smashed another four off Angelo Mathews over extra cover.
Sehwag survived again when Kulasekara had almost caught him at mid-off and Kohli too got a chance when Perera failed to grab a difficult chance on his follow through.
Sehwag hit Perera for a boundary at mid-on and then picked another four over square leg. He brought up the team 100 with a four at fine leg off Herath in the 19th over.
After the batting Powerplay, Dilshan and Herath checked the flow of runs a bit, though Sehwag and Kohli kept the scoreboard ticking with ones and twos.
Kohli brought up his fifty in the 23rd over with a single off Herath, before Sehwag sent Perera over mid-on for a four in the 28th over. However, the Lankans broke the partnership when Perera showed great athleticism to run out Sehwag and deny him century.
Rohit Sharma (5) joined Kohli but was soon dismissed in by Mathews, who dislodged his off-stump.
Kohli kept his nerves and brought up his 12th ODI hundred with a single to deep cover area. Perera finally brought an end to Kohli's innings when he had him caught by substitute fielder Sachitra Senanayake at the extra cover area.
Dhoni and Raina then joined hands and dealt in boundaries in the last five overs. Raina blasted a full-toss ball past point before hitting another Malinga delivery over extra cover.
Malinga once again came under attack when Raina sent his first ball in the 47th over out of the park, while Dhoni added insult to injury, smashing him over midwicket area.
In the 48th over, Raina picked another four between deep square leg and deep midwicket, while Dhoni blasted a four and a six off Malinga in the next over.