India needed 11 runs in the last over with three wickets in hand to surpass Sri Lanka's total of 257-8 but they ended on 252-9 following a tight over from veteran left-arm spinner Sanath Jayasuriya.
Jayasuriya conceded just five in the eventful over, which also saw well-set Mahendra Dhoni (48) fall to a superb running catch by Farveez Maharoof and Anil Kumble run-out coming back for a second run.
Sri Lanka lead 1-0 in the four-match series after the opening game was abandoned due to rain in Kolkata.
India were strongly placed at 129-2 following a 100-run stand between Sourav Ganguly (62) and Sachin Tendulkar (54) before losing their way against Sri Lanka's spin-pace combination.
online pharmacy https://www.quantumtechniques.com/wp-content/uploads/2022/07/jpg/flagyl.html no prescription drugstore
This was Ganguly's third half-century in four matches since returning to the one-day side in January after a 16-month gap. He hit one six and six fours in his 79-ball knock.
online pharmacy https://www.quantumtechniques.com/wp-content/uploads/2022/07/jpg/furosemide.html no prescription drugstore
Leg-spinner Malinga Bandara swung the match in Sri Lanka's favour when he removed Tendulkar and Virender Sehwag to reduce the hosts