Shikhar Dhawan, Virat Kohli and KL Rahul made fifties to power India to 340/6 before the bowlers kept chipping away to cut Australia 36 runs short, despite Steve Smith's 98.
Australia seemed in with a genuine chance while Steve Smith was out in the middle. Things became significantly bleaker for the visiting team once he was undone by Kuldeep Yadav in the 36th over.
In their bid to close out the series with a game to spare, Australia would have hoped for another strong performance from the openers after their record-breaking show in the previous game. But it wasn't to be.
David Warner was the first to fall, looking to slap a wide one from Mohammed Shami towards cover point. He even connected well but Manish Pandey leaped to take a one-handed stunner.
Aaron Finch then added 62 runs with Smith for the second wicket before getting stumped for 33. He missed a heave off Ravindra Jadeja and KL Rahul whipped the bails off in a flash. The third umpire had to adjudicate on a very close call and after much deliberation decided that Finch had no part of the foot behind the line.
Smith had looked uncomfortable against the short ball initially but started scoring freely as the innings progressed. Marnus Labuschagne looked the part in his maiden ODI innings. He seemed quite comfortable against spin and pace alike and formed a 96-run partnership with Smith.
It was Jadeja who provided the key breakthrough, having Labuschagne caught at long-off as he looked to up the ante in light of the increasing asking rate. The increasing scoreboard pressure started taking its toll as the batsmen had to begin taking more risks.
Alex Carey fell for 18 to Kuldeep Yadav, becoming the left-arm wrist-spinner's 100th victim. Kuldeep celebrated the milestone in style by getting the key wicket of Smith, who dragged one onto his stumps in trying to crash it through the off-side.
The bowlers then made light work of the lower order. Shami pretty much sealed the deal when he bowled inch-perfect swinging yorkers to dismiss Ashton Turner and Pat Cummins off successive deliveries. Kane Richardson hit a few lusty blows in the end, but Australia were eventually bowled out for 304 in the final over.
Earlier, India had received a fine start to the innings with openers Rohit Sharma and Shikhar Dhawan putting on 81 runs, before Rohit (42) was trapped in front by Adam Zampa when he looked to play an extravagant sweep.
Shikhar Dhawan looked his confidence self after his 74 in the previous game. He struck 13 fours and a six and tried to bring up his century with a pull shot but perished after picking out the man at deep backward square leg off Richardson's bowling.
Kohli played superbly for his 78, but was dismissed yet again by Adam Zampa when he tried to clear the ropes straight behind the bowler's head, only for Ashton Agar to pull off a fine relay catch, popping the ball to Mitchell Starc before going over the ropes. He fell for a steady 76-ball 78.
But it was KL Rahul's late onslaught that really made the difference in the end. He was aggressive from the start, and his 52-ball knock featured six hits to the fence and three over it to yield him 80 runs, taking India close to the 350-run mark.
Adam Zampa was the pick of the bowlers for the visitors, taking 3/50 in his 10 overs. Mitchell Starc, who bagged three in the series opener in Mumbai, seemed to have an off day, going for 78 runs off his 10 without taking a wicket.
Personalise your homepage with an ICC account
News, fixtures and updates tailored to your favourite team. Never miss a moment!