Resuming the day on 108 for one in response to the hosts' first innings score of 530, India lost their overnight batsmen early but Kohli (169), registering his third ton in this series, and Rahane (147) made sure that their stand is the highest for India in Australia at the MCG for any wicket. Teams:
The visitors ended the day on 462 for eight as they still trail by 68 runs at the end of Day 3. Aided by five dropped catches, India responded well only to lose a bit of a momentum in the end as new-ball bowler Ryan Harris returned with figures of 4-69.
Pace spearhead Mitchell Johnson (1-133), who bled runs through the day, also got Kohli caught behind to get a consolation wicket as umpires called stumps.
Getting into heated exchanges with Johnson at different stages of his innings, Kohli was dropped on 88 by Shane Watson (1-65) at first slip in the 85th over and made full use of the spill.
Kohli, recording his ninth Test ton, mixed the right dose of caution and aggression in his 272-ball stay, his innings laced with 18 boundaries.
Rahane, who got his century in just 127 balls, hitting 21 fours in his three-hours ten minute stay in the middle.
Rahane was finally trapped lbw off Lyon but not after maintaining a strike rate of 85.96. Rahane's wicket opened up the gates for the host, who struck back with four wickets for 53 runs in the final session of play.
Debutant Lokesh Rahul (3) failed to capitalise on a dropped chance at mid-wicket off Lyon only to play another similar stroke against the off-spinner on the very next delivery as the ball took a top adge and settled into the hands of Josh Hazlewood (0-75) at fine leg.
Skipper Mahendra Singh Dhoni (11) fiddled around for sometime but his tentative approach from the very start cost him his wicket after Harris got the wicketkeeper-batsman caught behind.
Ravichandran Ashwin was the next as part of the mini-procession and the No.8 batsman could only face four balls before being caught and bowled off Harris for a nought.
Harris was supported by Lyon (2-108) and Watson. The bowlers gave away far too many runs but were disciplined in the sense that they conceded just 2 extra in the innings so far.
Post-tea, the two batsmen had looked to increase their 189-run stand and did so quite well. They crossed the 200-run partnership mark in the 99th over of the innings, becoming the first batting pair ever to put on a 200-standd for the 4th wicket at the MCG.
Then they scored the next fifty at brisk pace, the 250-stand coming in the 106th over with the 400-mark coming the next over. India were scoring at more than six runs per over in that passage of play.
But things changed soon in the 108th over when Lyon trapped Rahane lbw to trigger a late-order collapse. Rahul was a bag of nerves and was dropped by substitute fielder Peter Siddle at mid-wicket in the 110th over.
But the youngster played a horrendous sweep shot to on the very next ball get a top-edge and get caught at fine leg.
Harris returned to account for Dhoni and Ashwin (0) as India went from 409/4 to 434/7. Meanwhile, Kohli stayed solid and crossed the 150-run mark in his Test career for the first time. He was out just before stumps, putting up 28 runs for the eighth wicket with Shami.
Earlier, Kohli and Rahane built on their 77-run platform they had laid in the morning. The latter had been more aggressive of the two batsmen and he continued in the same vein. He got to his half-century in the 71st over, off 60 balls, and two overs later brought up the 100-run partnership between them.
India crossed the 250-mark in the 74th over and were nearing the follow-on mark when things got a bit frantic in the middle. First, Lyon dropped Rahane (70 not out) in the 80th over, completely missing a simple return catch.
Then as the second new ball was taken, Johnson hit Kohli with a return throw. The batsman had an angry go at him and then lost his composure. In the 85th over he edged behind off the same bowler and was dropped by Watson at first slip.
Kohli then top-edged one off Johnson in the following over only for keeper Brad Haddin not being able to reach the ball.
Things settled down as their 150-run partnership came up in the 87th over and from thereon, it was all about the milestones. Rahane was the first to get to his triple-figures, reaching his 3rd Test century in the 90th over, off 127 balls.
It is his 3rd overseas Test hundred this year. Then, four overs later, Kohli got to his 9th Test hundred – his 4th in Australia – as the duo closed out the session with 112 runs without losing a wicket.
Earlier in the day, Cheteshwar Pujara (25) did not trouble the scorers as the No.3 batsman was out on the second ball of the day as Harris induced an outside edge and the catch was beautifully held Haddin in front of first slip.
Opener Murali Vijay (68) did add a few runs to his score and hit a couple of lovely boundaries before he got hit on the back of the helmet off a Johnson snorter.
The hit sure did shake him up as he was soon picked by Watson, edging one to first slip as Shaun Marsh made no mistake.
Australia: David Warner, Chris Rogers, Shane Watson, Steven Smith (capt), Shaun Marsh, Joe Burns, Brad Haddin, Mitchell Johnson, Ryan Harris, Josh Hazlewood, Nathan Lyon.
India: Shikhar Dhawan, Murali Vijay, Cheteshwar Pujara, Virat Kohli, Ajinkya Rahane, Lokesh Rahul, Mahendra Singh Dhoni (capt), Ravichandran Ashwin, Mohammed Shami, Ishant Sharma, Umesh Yadav.
Resuming the day on 108 for one in response to the hosts' first innings score of 530, India lost their overnight batsmen early but Kohli (169), registering his third ton in this series, and Rahane (147) made sure that their stand is the highest for India in Australia at the MCG for any wicket.