The home side are just nine runs shy at 371 for six thanks to Kohli's 107 and Dhoni's unbeaten 97.
Australia struggled on a spin friendly pitch with just Nathan Lyon as their only recognised slow bowler with skipper Michael Clarke used as a second spinner, to little effect.
India looked to continue the momentum gained towards the end of the first session where Dhoni in particular pummelled the visiting attack.
A long hop from Clarke just after the interval was dispatched to the mid-wicket boundary by Kohli . The pair hit boundaries in the next five consecutive overs with Dhoni hitting three off Mitchell Starc in the 88th over, the highlight being the first when the skipper punched a short delivery through the covers.
Kohli brought up his century and the India 300 in the next over with his 14th boundary - hitting James Pattinson through square leg to the fence. A length delivery from Henriques was hit for a maximum by Dhoni in the next over with a similar delivery two balls later going for four.
With Dhoni hitting the ball to all parts, Kohli was keen to match his skipper, however it led to his downfall the next over. When on 107, Kohli failed to get the elevation required to beat Starc at mid-on with the bowler taking a simple catch off Lyon to leave India 324 for five.
Dhoni attempted to maintain the impressive run rate, hitting boundaries off Siddle then Lyon but there were a lack of runs from the other end. There was little surprise when Ravindra Jadeja left a Pattinson delivery which clattered into off stump to end a 44-ball 16 run innings.
New batsman Ravichandran Ashwin survived until tea, with Dhoni on 97 from 116 deliveries.
In the morning session, the departure of Sachin Tendulkar was the only negative for India. Tendulkar could only add a tentative 10 to his overnight total of 71 before he was bowled through the gate by off-spinner Nathan Lyon.