India produced one of the great run chases in one day international cricket to beat Sri Lanka and keep alive their hopes of making the finals against Australia.
Their chances looked remote at best in Hobart when Sri Lanka ran up 320 for 4, led by an unbeaten 160 from Tillikaratne Dilshan and 105 from Kumar Sangakkara.
India were faced not only with a mammoth target, but they needed a bonus point as well which meant reaching their target in 40 overs.
But India lost only three wickets in achieving their target in the 37th over, thanks to an unbeaten 133 from Virat Kohli off 86 balls.
India now need Australia to beat Sri Lanka in the last round robin match in Melbourne on Friday to edge out Sri Lanka on points.