Chasing the target of 341 runs, Australia was all out for 304 runs in 49.1 overs. For Australia, Steve Smith scored 98 runs off 102 balls while Marnus Labuschagne made 46.
For India, Mohammed Shami was the most successful Indian bowler with 3/77 while Kuldeep Yadav, Ravindra Jadeja and Navdeep Saina took two apiece as Australia lost wickets at regular intervals.
Earlier, India scored 340 runs for 6 wickets in the stipulated 50 overs after put into bat first. Shikhar Dhawan, K L Rahul and Skipper Virat Kohli were top scorers for India.
For India, Shami took three wickets, and Ravinder Jadeja and Kuldeep Yadav took two wickets each.
The visitors registered an emphatic win over hosts by 10 wickets in the first ODI played in Mumbai on Tuesday and took 1-0 lead in the three-match series. The third and final ODI will be played in Bengaluru on Sunday.