Steyn had gone 69 overs without taking a wicket, dating back to the first drawn Test of the series last week.
“It's probably one of my better five-fors I've taken... I went so long without taking a wicket,” Steyn said at stumps on day two.
“Most people would capitulate and wouldn't be able to come back from that.
"I'm quite happy and proud I was able to come back from that.”
At the close of play, South Africa had reached 82 for no wicket, in reply to India's total of 334 and a deficit of 252.
At the wicket were openers Graeme Smith (35) and Alviro Petersen (46), both were unbeaten.
Steyn said the lengthy wicketless period in the two-Test series had been full of lessons.
“I actually didn't mind it. Sometimes bad things have to happen so you can learn from them.
“I don't think I bowled that badly, I went past the bat often.
“I always talk about getting that one soft dismissal. If you can get one you can get on a roll. You need that momentum shift and I was able to pick up a couple of wickets.”
Murali Vijay was Steyn's second scalp, and his demise for 97 was part of an Indian batting collapse.
“I thought the batsman that got in should have cashed in more,” Vijay said.
“But also I felt when we went in this morning there was more of a dew factor and there was more bounce.”
After India were bowled out, Smith and Petersen both came out in aggressive fashion, as the Proteas looked to eat into the Indian lead, scoring at over four runs per over.
The day began with India resuming on 181/1 and, after no play was possible in the first session, Steyn became the chief destroyer taking three wickets both before and after tea.
Taking just the one wicket on Thursday, the South African bowling attack came out with a clear wicket-taking strategy on Friday afternoon.
Morné Morkel peppered the batsman with short deliveries and, at the same time, starved India of runs.
Steyn adopted a probing line outside off-stump until he made the breakthrough in the 67th over.
Cheteshwar Pujara (70) was drawn into a drive and edged the ball to wicketkeeper AB de Villiers as India lost their first wicket of the day.
It brought an end to a 157-run second-wicket partnership between Vijay and Pujara.
In his next over, Steyn removed Vijay, three short of what would have been his fourth Test century.
Rohit Sharma walked to the crease but Steyn sent him back off his first ball.
The delivery came back into the right-hander, and Sharma opted to leave the ball, only to have his middle stump disturbed.
India fought back after the three quick wickets with a fifth-wicket partnership of 66 between Virat Kohli and Ajinkya Rahane.
Morkel struck just before tea to have Kohli caught for 46 while Rahane remained unbeaten on 51.
After tea, Steyn accounted for Indian captain MS Dhoni (24), before picking-up another two wickets to return figures of 6/100 for the innings.
Morkel, who helped clean up the tail, bagged 3/50 with India's last five wickets falling for 14 runs.