Ishant Sharma accounted for South Africa’s eighth wicket in Wayne Parnell to bring India closer to victory at Eden Gardens.
Harbhajan caught Parnell at short mid-on as India were left with just two wickets more to take to win the match.
Hashim Amla was the lone hope for South Africa as he held his own against India and registered his ninth Test century. South Africa were 250/7 at tea with Amla at 106 and Wayne Parnell at 22.
Harbhajan Singh rocked the South African ship as the veteran spinner sent the seventh wicket packing at Eden Gardens. Dale Steyn had no answer to Bhajji’s delivery that hit his pad in front of middle stump.
Harbhajan struck again after lunch and showed JP Duminy the way back and another batsman failed to give Hashim Amla any support.
South Africa had reached 164/5 at lunch.
After Harbhajan Singh dealt South Africa the first blow on the last day, Amit Mishra took the important wicket of AB de Villiers.
De Villiers had just got off the mark, added three runs to his side’s cause when Mishra showed him the way back.
It was an easy catch for Ishant Sharma at mid-off to dismiss the visitors’ fourth wicket of the innings in Ashwell Prince off Harbhajan.
Hashim Amla held the fort and led South Africa past the 150-run mark as India stepped on the gas to stake claim for a victory.
Amla completed a patient half-century after South Africa had resumed the day’s proceedings from an overnight 115/3.
Amit Mishra and Harbhajan Singh had put India on course for victory on a rain-hit fourth day in Kolkata.
Mishra claimed Graeme Smith (20) in a morning session at the Eden Gardens which was shortened to an hour due to a wet outfield and the spinner struck again in the afternoon to secure Jacques Kallis’ (20) scalp, Harbhajan Singh removing Alviro Petersen (21) in between to leave the home side on course for a series-levelling win.
Rain and Hashim Amla (49 not out) were hurdles to more success for the home side as the Proteas ended the day on 115 for three, still 232 runs behind India’s first innings score.
The start to the morning session on the fourth day was delayed by more than 90 minutes, but Smith and Petersen had made a determined start once play resumed.
India: M S Dhoni (c), Virender Sehwag, Gautam Gambhir, Murali Vijay, Sachin Tendulkar, VVS Laxman, S Badrinath, Harbhajan Singh, Zaheer Khan, Amit Mishra, Ishant Sharma.
South Africa: Graeme Smith, Alviro Petersen, Hashim Amla, Jacques Kallis, AB de Villiers, Ashwell Prince, J P Duminy, Dale Steyn, Wayne Parnell, Morne Morkel, Paul Harris.