The 30-year-old Indian skipper scored 254 runs and remained not-out as he chose to declare the innings and make the Proteas bat. Kohli broke many records on day three of the Test as he became the only Indian with seven double centuries in Tests, surpassing Sachin Tendulkar and Virender Sehwag.
As well as Philander and Maharaj's eight-wicket stand of 56, only opener Dean Elgar (48) and number five Temba Bavuma (38) dug in, with the rest of South Africa's batsmen failing to reach double figures.
It keeps India with a flawless four from four record in the world test championship, and is the 30th win under Kohli's captaincy, in 50 tests.
The hosts then bowled South Africa out for just 189, enforced the follow on on the penultimate day and then dismissed the tourists for 275 in their second dig.
South Africa put up some resistence with Keshav Maharaj, who made 72, and Vernon Philander, 44 not out, putting on 109 runs for the ninth wicket to frustrate the Indian bowlers.
"We are lucky to have the group of players we have in the last three-four years. It's wonderful to see that hunger and passion for all the guys to keep improving", Virat Kohli said after the win. "Looking at the larger picture of the Test championship, every game has value so we're not going to take our foot off the gas in the third Test. Two days in the field can wear you down", said du Plessis.
"He's taken that risk, which a lot of other captains have not been able to take". From then it's playing catch-up.
Du Plessis said Kohli's innings was a lesson for any batsman. "The hunger stood out, it was great value for us as batters".
RESULT: India won by an innings and 137 runs to lead three-match series 2-0.
MATCH REFEREE: R.B. Richardson (West Indies).
After winning the first test in Visakhapatnam by 203 runs, India again piled on the misery for the visitors, amassing a whopping 601-5 declared, thanks to a man-of-the-match 254 not out from captain Virat Kohli.