The hosts made light of South Africa's daunting first innings total of 540 to take their lunch score of 176-0 to 309-1 by tea at the Chidambaram stadium.
The spectacular Sehwag smashed 108 of India's 133 runs in the post-lunch session to notch up his fourth 200-plus score in 14 Test centuries.
The 29-year-old Delhi batsman, India's lone triple century-maker after his monumental 309 against Pakistan in 2004, has so far hit 34 boundaries and three sixes.
Sehwag reached his double century in style, pulling Makhaya Ntini over the square-leg fence for six to move to 199 before taking three runs to long-on off the next delivery.
Sehwag's double ton off 194 balls was the third fastest in Test history after New Zealander Nathan Astle's 153-ball effort against England at Christchurch in 2001 and Sehwag's own 182-ball innings against Pakistan in Lahore in 2006.
Rahul Dravid, the other unbeaten batsman at the crease, made just 10 in an unbroken stand of 96 for the second wicket with Sehwag.
Sehwag and Wasim Jaffer, who resumed at the overnight score of 82-0 and remained unseparated till lunch on 176, put on 213 for the first wicket.
Jaffer made 73 when he edged left-arm spinner Paul Harris to Jacques Kallis in the slips to give the tourists a badly-needed break.
There was no assistance for the South African bowlers on the slow, barren wicket which allowed the batsmen to play their strokes without fear.
Earlier, Sehwag and Jaffer punished the tourists' attack by adding 94 runs from 25 overs in the morning session.
Sehwag went to lunch on 110, his second successive century following a match-saving 151 in his last innings against Australia at Adelaide in January.
The swashbuckling opener had moved to 99 with a lofted on-drive off Jacques Kallis and reached his hundred with another skier over the bowler's head in the same over.
The tourists struggled to contain the flow of runs as the batsmen cut, pulled and drove freely to the delight of 35,000 home fans.