Published: 2020-01-19 23:05:28 BdST
Steve Smith's first ODI hundred in three years had propelled Australia to 286-9, although the tourists at one stage looked set for a 300-plus total at the M Chinnaswamy Stadium.
Rohit's 119 laid the foundation for India's chase and Kohli made 89 as three premier batsmen of their era shone in a mouthwatering contest.
Earlier, Australia captain Aaron Finch won the toss and elected to bat but the touring side did not get the strong start they expected from their openers.
David Warner fell cheaply and Finch ran himself out after an almighty mix-up with Smith as both finished up at the same end.
Smith redeemed himself with a typically fluent knock, adding 127 runs with the in-form Marnus Labuschagne (54), before wickets started tumbling at the other end.
Kohli took a stunning one-handed catch to send back Labuschagne and Mitchell Starc, promoted in the order as a pinch-hitter, fell in the same Ravindra Jadeja over.
Smith could not be denied his ninth ODI century, however, and the prolific Australian made a run-a-ball 131 before holing out in the deep.
Jasprit Bumrah bowled with characteristic parsimony and Mohammed Shami (4-63) produced a string of yorkers to hurt Australia who lost their last five wickets for 51 runs.
India suffered a blow before beginning their chase with opener Shikhar Dhawan hobbling off after hurting his shoulder while fielding.