It was Dhoni's fifth ODI hundred as he featured in century partnerships with Gautam Gambhir (76) and Suresh Raina (62) that gives India an excellent chance of bouncing back from its four-run defeat in the opener and leveling the seven-match series.
Dhoni, who hit nine boundaries, moved from 90 to 108 by hoisting three sixes _ the first off swing bowler Ben Hilfenhaus and then two from successive deliveries in the next over from medium-pacer Shane Watson.
Coming in to bat with India struggling on 97-3, Dhoni helped resurrect the innings with a 119-run partnership dominated by the in-form Gambhir, who was eventually run out by a direct hit from Nathan Hauritz at the non-striker's end.
Gambhir's composed 80-ball innings included six boundaries.
Dhoni then took charge of the game as Raina took some time to get his eye in. They shared a 136-run partnership for the fifth wicket that didn't end until the 50th over, when Dhoni was bowled by paceman Mitchell Johnson.
Johnson, who passed a fitness test before being included, claimed 3-75 after having Raina caught behind off the second last ball of the innings. Praveen Kumar was run out on the final delivery.
Raina's 50-ball innings included one six and six boundaries.
Put in to bat after Australia captain Ricky Ponting won the toss, India lost opener Sachin Tendulkar for 4 as he edged seamer Peter Siddle to Cameroon White in the slips to make it 21-1 in the fourth over.
Virender Sehwag hit 40 from 34 deliveries with a six and six boundaries before lofting Johnson straight to Hilfenhaus at mid off.
Yuvraj Singh, returning from an injury-forced absence, made 23 before hitting a soft return catch to Hilfenhaus.
Hilfenhaus replaced pace ace Brett Lee in the team, while top-order batsman Shaun Marsh came in for injured allrounder James Hopes.