Kohli stitched together crucial stands with Umesh Yadav and Ishant Sharma and his innings took India 13 runs close to England's total of 287 and in the dying moments of the day, Ravichandran Ashwin removed Alastair Cook for the second time in the game nearly in identical fashion to his dismissal in the first innings to leave the hosts at 9 for 1 at the end of the second day of this Test match. This was after India quickly wrapped up the English innings, who lost their last seven wickets for a mere 71 runs.
But Kohli's superb 149 took India to 274 all out, just 13 runs adrift of England's 287.
Root's dismissal sparked a collapse as England lost six wickets for 67 runs to end the day on 285-9.
Kohli, whose arrival at the wicket had been greeted by some boos from the Edgbaston crowd after his controversial celebration of Joe Root's run out on Thursday, was on 21 when James Anderson found the edge and Malan spilled him.
See Pics: Blood moon dazzles skygazers in 21st centurys longest eclipse
Mars will actually be at its closest approach since 2003 on Monday and Tuesday, when it is 35.78 million miles away. Skywatchers will be treated to the longest " blood moon " eclipse of the 21st Century on Friday.
England would have been all out had a tough caught-behind chance been held when Sam Curran (24 not out) edged Mohammad Shami's penultimate ball of day one.
He brought up his century off 172 balls, his 22nd in Test cricket and his fourth against England.
He then struck several stylish attacking shots, including a classic cover-drive for four off Stokes and a lofted six off leg-spinner Adil Rashid.
And after reaching the landmark, he paid tribute to his wife Anushka Sharma.
Imran Khan claims victory in Pakistan election
Khan offered to investigate all the allegations of rigging and said he wants to "unite" the country under his leadership. The PTI has won 76 of the 272 seats in Pakistan's national assembly and is leading in 43.
First to go was Vijay (20), plumb LBW to a late inswinger, then KL Rahul (4) played on to leave the tourists on 54 for two.
Left-hander Shikhar Dhawan (26) nicked a well-directed Curran outswinger to Malan at second slip.
But Bairstow soon dragged on Umesh Yadav for 70 and, after the earlier departures of Alastair Cook (13), Keaton Jennings (42) and Dawid Malan (8), England were suddenly wobbling.
Three dead in Zimbabwe protests over alleged election fraud
Gunfire was heard downtown throughout the afternoon, including near the ruling party headquarters where protesters had gathered. Three people were killed in Zimbabwe's capital Harare after troops opened fire on rioting opposition supporters, police say.
India have always been criticised for their poor close catching but England's slip cordon is not the most reliable either and, with the tourists still on 100, two chances went begging. Hardik Pandya (22), on 0, escaped a loud lbw shout with DRS coming to his rescue.