Shikhar Dhawan’s fine 117, coupled with 82 from captain Virat Kohli and an entertaining 48 by Hardik Pandya, helped India post 352-5 in front of a boisterous crowd.
Australia, facing what would be a World Cup record chase, struggled to accelerate despite Steve Smith’s 69 as David Warner spent 84 balls making 56.
With wickets falling and the run-rate rising, Alex Carey hit a 25-ball half-century but it was not enough to stop Australia sliding to their first defeat of the tournament.
Bhuvneshwar Kumar removed Adam Zampa with the last ball of the match to finish with 3-50 and Jasprit Bumrah took 3-61.
The end result might look like a tight scoreline but for almost the entire run chase Australia never looked as though they would come close to their target.
It was only in the late stages that they began to give India and their fans any mild concern, that courtesy of late cameos from Glenn Maxwell and Carey.
Australia face Pakistan at Taunton on Wednesday, while India, who have won their first two games, play top of the table New Zealand at Trent Bridge on Thursday.
From the moment the teams came out for the national anthems, to KL Rahul hitting the final ball of the innings for four, India’s players were cheered by a sell-out, vociferous crowd.
The drums beat as Pat Cummins ran in to bowl the first ball of the day. There was a huge roar as Rohit Sharma worked the first runs of India’s innings through point. Even a Dhawan defensive shot was cheered in the opening stages.
The openers played carefully against the pace of Cummins and Mitchell Starc but after Rohit was given a life on two – dropped at square leg by a leaping Nathan Coulter-Nile – they cut free.
Dhawan went after Coulter-Nile, taking three fours from his first over, and when Zampa’s leg-spin was introduced, Rohit thrashed his first ball for four.
They both reached 50, sharing a 127-run stand, before Rohit was caught behind trying to guide Coulter-Nile over the keeper.
Captain Kohli, who had spent the opening stages of the match standing in the dressing room, glued to the TV coverage, was cheered loudly to the crease.
The Australians were booed when they appealed against him, but Kohli struggled at first, settling for manipulating the field after a handful of wild drives against the seamers.
Dhawan brought up his hundred thanks to an overthrow – he was given an extended ovation – and, even after he was caught at deep mid-wicket off Starc, India did not let up.
Pandya was pushed up the order and dropped first ball by a diving Carey, but slog-swept Zampa and Maxwell for sixes before slapping Cummins through backward point.
Pandya holed out at mid-off off Cummins, MS Dhoni fell to a stunning caught and bowled by Marcus Stoinis – the seamer sticking out his right hand in his follow-through – and Kohli fell to the penultimate ball of the innings.
Smith and Warner might be used to the chorus of boos that greets them in England but it was Kohli who intervened when the India fans barracked them.
Smith was jeered as he fielded in the deep; Kohli asked the fans to quieten down and applaud instead, which Smith acknowledged by shaking his hand.
In front of such a partisan crowd, every Australia boundary was greeted with silence. Not that there were many, as Australia made an odd start to a chase that never really accelerated until the 37th over.
The opening partnership of Finch and Warner was solid if not explosive, worth 61 before Finch, the more fluent of the two, was run out by a fine throw from Kuldeep Yadav at deep point having been called through by his partner.
Warner has looked scratchy since his return to international cricket but this – a blockbuster game in front of a sell-out crowd with Australia needing a record total to win – seemed made for him.
However, it was an oddly subdued innings. His 77-ball fifty, met by silence from the crowd, was his slowest in one-day cricket.
Warner hit only five fours and with India’s spinners operating in tandem struggled to rotate the strike. When he was eventually dismissed, caught at deep mid-wicket off spinner Yuzvendra Chahal, it felt like an anti-climax.
Smith seemed unable to hit out, although Khawaja struck a six in his 42 before he inside edged on to his stumps.
Maxwell added the impetus that had been missing. His first ball from Bumrah was hammered for four and he hit Kumar for back-to-back boundaries in the next over.
Smith also accelerated and for the first time, the capacity crowd fell silent.
But there was too much for Maxwell to do and wickets fell quickly. Smith and Stoinis fell in the space of two Kumar deliveries, Maxwell was caught in the deep trying to force the rate and once Coulter-Nile, who made 92 off 60 balls against West Indies on Thursday, was caught at deep mid-wicket, the crowd found their voice again.
Brief scores: India 352-5 (50 overs): Dhawan 117, Kohli 82, Rohit 57, Australia 316 (50 overs): Smith 69, Warner 56, Carey 55*, Kumar 3-50; Bumrah 3-61.