India pulled off a remarkable run chase to beat Sri Lanka, keeping alive their hopes of reaching the final of the CB Series.
The Indians looked set for an early exit from the competition after centuries from Sri Lanka stalwarts Tillakaratne Dilshan (160) and Kumar Sangakkara (105) set them a daunting 321 victory target.
Only a bonus-point win would keep India in with a chance of reaching the final, therefore meaning they had to overhaul the target in an unlikely 40 overs.
But, inspired by Virat Kohli, who smashed a 76-ball century - his ninth in one-day internationals, India surpassed the target in just 36.4 overs with seven wickets still standing.
Kohli finished unbeaten on 133 from just 86 balls, sharing a destructive unbroken 120-run partnership with Suresh Raina (40no off 24).
India must now wait on the outcome of the final group game, where Sri Lanka must avoid defeat against Australia to deny them a place in the final against the hosts.
That scenario looked a distant dream for India after Dilshan and Sangakkara had earlier shared a stand of 200 for the second wicket to help post 320-4 from their 50 overs.
Mahela Jayawardene (22) advanced to smash Zaheer Khan for six, but tried one audacious shot too many off Ravindra Jadeja and gave catching practice to Virender Sehwag at slip.
Dilshan reached his half-century with a delicate four through third man and Sangakkara joined him past the milestone soon after.
Sangakkara heaved Sehwag for six over long-on, though had Praveen Kumar run back rather than forward it may well have been a catch, then flicked Umesh Yadav effortlessly over the rope in the batting powerplay.
Sri Lanka passed 200 in the 39th over and Dilshan took a single off Jadeja to reach his 11th ODI century.
Sangakkara swatted consecutive fours to move to 95, then reached his own century with a scrambled two off a leading edge.
Sangakkara's century came off 84 deliveries but he was bowled by Kumar three balls later.
Dilshan continued his assault, having taken 132 balls to reach 100, he needed just another 27 to get to 150, guiding Sri Lanka well past 300 in the process.
India openers Sehwag and Sachin Tendulkar provided their side with an explosive start, sharing a 56-run partnership off only 38 balls before the former holed out off the bowling of Farveez Maharoof.
Tendulkar's wait for a hundredth international century continued when he was trapped lbw by Lasith Malinga - the only moment of cheer for the Sri Lanka seamer, who finished with extraordinary figures of 1-96 from just 7.4 overs.
Malinga was not the only Sri Lanka bowler to suffer at the expense of the fired-up India batsmen, Nuwan Kulasekara (0-71) and Thisara Perera (0-59), coming in for similar punishment.
Gautam Gambhir played his part with a typically fluent 63, but it was Kohli who took centre stage once the left-hander had succumbed attempting one quick single too many.
The 23-year-old right hander cracked 16 boundaries and cleared the rope twice during a remarkable 86-ball knock.
He took Malinga's 35th over of the match for 24 runs, sealing victory in style with back-to-back boundaries off the same bowler.