India were cruising to their target of 349 - and the highest successful run-chase in Australia - as both Shikhar Dhawan and Virat Kohli made hundreds.
But India collapsed from 277-1 to 323 all out as Australia pace bowler Kane Richardson took 5-68.
Aaron Finch made 107 and David Warner 93 in Australia's 348-8.
The home side had already sealed the five-match series and now lead 4-0, targeting a whitewash in Saturday's final match in Sydney.
The World Cup holders have also now won 18 consecutive ODIs on home soil.
That run was in severe peril at the Manuka Oval as Kohli and Dhawan added 212 for the second wicket, with Kohli, 27, compiling a 25th one-day hundred to go joint-fourth on the all-time list.
But after Dhawan cut John Hastings to point, India imploded.
Captain MS Dhoni edged Hastings behind for a second-ball duck and, when Kohli lobbed Richardson to mid-off, India had lost three wickets for one run.
Of the rest, only Ravi Jadeja made double figures, with Richardson and Mitchell Marsh running through the tail.
India lost nine wickets for 46 runs as Australia staged a remarkable fightback to win the fourth one-day international in Canberra.