Second Test, Calcutta, day four (stumps):
South Africa 305 & 172-5 v India 411
Harbhajan (centre) took four wickets either side of tea
Harbhajan Singh took four wickets on day four of the deciding second Test to dramatically revive India's hopes of beating South Africa in Calcutta.
The match looked set for a draw after the tourists put on 77 for their first wicket, Graeme Smith making 71.
But Harbhajan struck either side of tea to leave South Africa 172-5 - just 66 ahead - with Jacques Kallis 52 not out.
Earlier, Dinesh Karthik hit 46 as India reached 411 all out in their first innings, Makhaya Ntini taking 4-112.
Harbhajan rattled South Africa by having opener Andrew Hall caught behind sweeping for 21 and then Jacques Rudolph lbw in successive overs.
And he returned after the tea interval to remove skipper Smith and Hashim Amla for two.
Smith shared a brisk 77-run opening stand with Hall, who struck one six and three boundaries off 63 deliveries. Hall was.
Smith struck 11 boundaries from 124 deliveries during his 160-minute knock posting his first half-century against India in two tests before he edged a ball to VVS Laxman at slip.
Debutant Amla fell to a bat-pad catch that also flew to Laxman.
After Anil Kumble dismissed Boeta Dippenaar, Zander de Bruyn joined Kallis, making nine before stumps were drawn.
Wicket-keeper Karthik hit a career-best 46
Kallis survived a chance on two when he edged a sharp turner from Harbhajan into the hands of Gautam Gambhir at forward short-leg, but umpire Daryl Harper turned down the appeal.
Kumble's dismissal of Dippenaar boosted his Test haul to 432, just two behind former captain Kapil Dev's Indian record on 434.
Resuming on 359-6, India were pegged back by the accurate South African fast bowlers when the new ball was taken at the start of the day.
Ntini had Irfan Pathan (24) and Kumble caught in the slips
Shaun Pollock denied Karthik his maiden Test half-century by trapping him lbw before Harbhajan and Zaheer Khan added a streaky 24 for the last wicket.
Leg-spinner Justin Ontong claimed his first Test wicket on the stroke of lunch when he dismissed Harbhajan for 14.
India: Sourav Ganguly (captain), Virender Sehwag, Gautam
Gambhir, Rahul Dravid, Sachin Tendulkar, Venkatsai Laxman, Dinesh
Karthik, Anil Kumble, Harbhajan Singh, Irfan Pathan, Zaheer Khan.
South Africa: Graeme Smith (captain), Andrew Hall, Hashim Amla,
Jacques Kallis, Jacques Rudolph, Boeta Dippenaar, Zander de Bruyn,
Shaun Pollock, Justin Ontong, Thami Tsolekile, Makhaya Ntini.
Umpires: Daryl Harper, Simon Taufel.