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 from the other end until he was joined by Thisara Perera, who scored a quick-fire 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.
More From This Section
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 as he scored his fourth hundred in his last five innings. The 23-year-old Kohli blasted nine boundaries in his 113-ball innings.
Sehwag, who was given 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.