India chased down a target of 239 for a two-wicket victory over Sri Lanka in the eighth match of the Commonwealth Bank Series.
Yuvraj Singh's rapid 76 and an unbeaten 50 from skipper Mahendra Singh Dhoni got India home with five balls to spare and meant Kumar Sangakkara's earlier century was in vain.
Sangakkara contributed 128 to Sri Lanka's total of 238-6 after they had been asked to bat first at the Adelaide Oval.
But it was not enough as India's middle order lynchpins Yuvraj and Dhoni guided their side out of early trouble to secure a result that consolidates their hold on second place in the points table, behind hosts Australia.
India's run chase started badly when Sachin Tendulkar had his off-stump knocked back by Lasith Malinga's first delivery.
Gautam Gambhir and Robin Uthappa added 31 for the second wicket before both fell in quick succession to leave India struggling on 35-3.
Uthappa was run out by Sanath Jayasuriya's direct hit from mid-off in the 10th over and, 10 balls later, Gambhir was strangled down the leg side by Ishara Amerasinghe.
Fourth-wicket pair Yuvraj and Rohit Sharma counter-attacked to the tune of 64 runs from 57 balls to ensure the required rate was always under control.
And when Rohit (24) was caught on the midwicket boundary off Muttiah Muralitharan's (1-44) bowling, Yuvraj - who had come into this game having made 37 runs in four innings in the competition - found another willing ally in his captain Dhoni to add a further 59 from 64 balls.
However, the return of Chaminda Vaas (1-27) accounted for Yuvraj for a 70-ball 76 - bowled playing around a yorker - and left the game back in the balance with India 158-5 at the end of the 33rd over.
Irfan Pathan (31) helped Dhoni add another 58 to take India close, but was then bowled attempting an unnecessary slog with 23 runs still required off 27 deliveries.
And the game went down to the final over after Amerasinghe (3-49) bounced out Praveen Kumar (6), and Harbhajan Singh (3) was trapped lbw by a Malinga (2-37) yorker.
With three runs required from the last six balls, Farveez Maharoof sent down a wide. Dhoni then sealed victory with a couple into the covers to finish on 50 not out, his 19th one-day international half-century.
Earlier, a third-wicket stand of 153 between Sangakkara and Mahela Jayawardene allowed Sri Lanka to recover from 6-2.
Tillakaratne Dilshan (4) edged behind from the fourth ball of Munaf Patel's opening over and Jayasuriya (0) was run out in the third over when Munaf tipped Sangakkara's straight drive onto the stumps at the non-striker's end.
But experienced duo Sangakkara and Jayawardene repaired the damage during a partnership that spanned 35 overs and built the platform for a respectable total.
It was mainly serene, steady progress although Sangakkara was caught at midwicket off a Kumar no ball, the delivery having been above waist height.
India finally made the breakthrough in the 38th over, this time Jayawardene being the unfortunate victim of a Sangakkara straight drive being deflected onto the stumps by Kumar.
Chamara Kapugedera managed just a single before being run out by Rohit's direct hit from backward point.
But there was no stopping Sangakkara, who brought up his third one-day international century from 141 balls in the 46th over.
The left-hander shared a 50-run, fifth-wicket alliance off just 46 balls with Chamara Silva before holing out to Kumar at deep midwicket off the last ball of the penultimate over, bowled by Pathan (1-44), to end a magnificent innings.
Silva (21) fell to a catch on the boundary in Harbhajan's (1-54) final over as Sri Lanka closed on 238-6.
The result leaves India in second place in the points table with 12 from six matches, six above Sri Lanka who have played a game less. Australia lead the way with 17 points from five matches and are almost certain to reach the best-of-three finals.