Hosts trying to accelerate the scoring rate was undone by the pace and swing of Steyn and in the end managed a slender lead of 87 runs despite the Herculean effort from Sehwag (319).
Dravid, The Wall, playing his 120th match, notched up his 25th Test century and became the sixth batsman in history to surpass 10,000 Test runs in the process.
The elite club, led by Lara, includes three Indians, Tendulkar, Sunil Gavaskar and Dravid, and two Australians, Allan Border and Steve Waugh.
Dravid, Lara and Tendulkar are the only ones to have more than 10,000 runs in both Test and one-day cricket.
Steyn started the rot with the dismissal of Dhoni (16) caught behind and then castled Kumble, Harbhajan and RP in quick succession with yorker length reverse in-swingers minutes before tea break.
Earlier Ntini put paid on Sehwag's hopes of surpassing Brian Lara's world record of 400 n o when he induced Viru to edge an away swinging delivery straight to McKenzie at first slip. Ntini then consumed Tendulkar for duck. India lost both wickets at 481, but Sourav Ganguly helped Dravid put on 45 for the fourth wicket.
Left-hander Ganguly made 24 when an intended slash off left-arm spinner Paul Harris took a thin edge to wicket-keeper Mark Boucher.
However Dravid ensured India edge past SA's first innings total. He shared 47-run stand with Laxman for the fifth wicket stand.
Ntini ended Dravid's 291-ball vigil at the crease caught Kallis for Nelson. The former captain hit 15 boundaries.
VVS, who played some enchanting on-drives, flicks and pulls for his 64-ball 39, was the last man out when he spooned a flighted delivery from Harris straight to the bowler.
Sehwag and Steyn have lit up the hopes for both the teams with four sessions to go. India stands a good chance with pitch predictably has started wearing much to the delight of Kumble and Bhajji. The duo has a huge task in hand against a line-up of stonewallers.
Brief Scores (at tea, D-4):
South Africa Ist innings 540 Vs India 627 all out (Sehwag 319, Dravid 111, Wasim Jaffer 73, Laxman 39, Ganguly 24; Steyn 4 for 103, Ntini 3 for 128, Harris 3 for 203)