Chasing 265 for win, the islanders rode on the 36-year-old's masterclass to complete the task with four balls to spare at the Khan Shaheb Osman Ali Stadium.
The win helped Sri Lanka jump to the top of table in the five-nation continental tournament.
With Shikhar Dhawan (94) and Virat Kohli (48) taking India to 264 for nine after being sent into bat, Sri Lanka were cruising at 134 for one after the butterfingered Indian fielders dropped three catches.
Continuing his dream run in Bangladesh that include one triple century, three centuries and two half-centuries across Test and ODI formats, Sangakkara looked in complete control even as he lacked support at the other end, after the departure of Kusal Perera (64).
More From This Section
With his team under pressure, the experienced campaigner ensured that he took Sri Lanka close to the target as he completed his 18th ODI century with a boundary in 83 balls, only to be dismissed by Mohammed Shami in the next ball.
With the scores levelled in the penultimate over, it was as good as over for India as they dropped their fourth catch, this time Dhawan goofing up at mid-off.
Earlier, Ajantha Mendis returned to haunt India as they were restricted to a modest total.
Dhawan and Kohli led India's recovery in a 97-run second wicket partnership before Mendis struck.
The spinner castled Kohli and Dhawan with his carrom ball en route to figures of 4/60 while off-spinner Sachithra Senanayake scalped 3/41 as the much talked-about India's newlook middle-order struggled in the absence of Mahendra Singh Dhoni.