Thilan Samaraweera's second one-day international century led Sri Lanka to a five-wicket victory over India in the second match of the triangular one-day series in Bangladesh.
Samaraweera finished unbeaten on 105 as Sri Lanka overhauled a target of 280 with 12 balls to spare at the Shere Bangla National Stadium in Dhaka.
Sri Lanka looked to be cruising home as skipper Kumar Sangakkara and Samaraweera added 122 for the third wicket.
But the departure of Sangakkara, caught for 60 from a miscued attempt to drive off-spinner Harbhajan Singh (3-47), prompted a collapse from 199-2 to 226-5 in the 44th over.
However, number seven Thissara Perera, making just his third one-day appearance, thrashed 36 off 15 balls to seal the win.
He hit six fours and a six as India's decision to recall seamers Ashish Nehra (0-55) and Zaheer Khan (0-57) for the death overs backfired.
Sri Lanka are now top of the group table having also beaten hosts Bangladesh in the previous day's tournament opener.
Yuvraj Singh and Mahendra Singh Dhoni had earlier shared a 99-run, fourth-wicket stand to rescue India after they had been sent in to bat.
Virender Sehwag gave the innings a flying start with 47 off 31 balls but Sri Lanka left-arm seamer Chanaka Welegedera removed Gautam Gambhir (8), Virat Kohli (9) and Sehwag inside the first nine overs to reduce India to 71-3.
While Dhoni was cautious, Yuvraj, back in the team after missing the last two matches in the home series against Sri Lanka due to a finger injury, was initially scratchy.
The Chandigarh-born left-hander, however, gradually gained fluency and progressed to his 43rd one-day half-century from 60 balls by hitting Thilina Kandamby (0-22) for consecutive sixes.
India suffered another setback when medium pacer Perera struck in his first over when Dhoni edged behind for 37 off 70 deliveries.
Suresh Raina edged Suranga Lakmal (0-48) to Sangakkara and was ruled out by umpire Simon Taufel, but was recalled after the third umpire confirmed the ball had bounced before the wicketkeeper had caught it.
That partnership was eventually broken when Yuvraj fell for 74, attempting to pull Perera (2-27), but instead found Lakmal in the deep.
Raina added 65 for the sixth wicket with Ravindra Jadeja (39) before Welegedera returned to send back Raina (35) and Zaheer Khan in the batting power play to finish with one-day best figures of 5-66.