India captain Virat Kohli hit his 39th one-day international century to level the series in Australia.
The hosts had set the tourists 299 to win, with Shaun Marsh scoring 131 off 123 balls in Adelaide.
Kohli hit 104 off 112 balls but left his side needing 57 runs off the final 38 balls.
MS Dhoni (55) and Dinesh Karthik (25), both unbeaten, saw the tourists home – bringing the three-match one-day series to 1-1.
The deciding match of the series will take place on Friday in Melbourne.