|Harbhajan celebrates the wicket of Duminy before missing out on his hat-trick [AFP]
Indian spearhead Zaheer Khan triggered a sensational South Africa collapse after in-form Hashim Amla and debutant Alviro Petersen hit centuries on the opening day of the final Test in Kolkata.
Left-arm Zaheer dismissed both the century-makers in his fourth spell before off-spinner Harbhajan Singh weaved a magical web at one of his lucky venues as the tourists lost seven wickets for 48 runs on Sunday.
South Africa, bidding for a first series victory in almost a decade after taking a 1-0 lead in the two-match series, were struggling at 266 for nine at the close after being confidently placed at 218 for two at one stage.
The last wicket pair of Wayne Parnell and Morne Morkel were at the crease when play was first suspended due to bad light before being called off.
Amla struck 114 and Petersen made exactly 100, the second wicket pair putting on 209 after the tourists opted to bat first following a morale-boosting victory by an innings and six runs in the opening Test at Nagpur.
Zaheer, who dismissed opener Graeme Smith for four early in the innings, sent back Petersen and Amla either side of tea as India clawed their way back into the game they need to win to hold on to the number one ranking.
Zaheer took both those wickets in a spectacular six-over spell to lift India's spirits after being tormented by Petersen and Amla, who scored 253 not out in the first Test.
South Africa first innings
G Smith b Zaheer 4
A Petersen c Dhoni b Zaheer 100
H Amla c Dhoni b Zaheer 114
J Kallis c Laxman b Harbhajan 10
AB de Villiers run out 12
A Prince lbw b Harbhajan 1
JP Duminy lbw b Harbhajan 0
D Steyn lbw b Mishra 5
P Harris c Dhoni b Ishant 1
W Parnell not out 2
M Morkel not out 3
Total (9 wickets; 81 overs) 266
FoW 1-9, 2-218 3-229 4-251 5-253 6-253 7-254 8-255 9-261
Harbhajan found the form that had eluded him for a while as he dismissed Jacques Kallis and then Ashwell Prince and JP Duminy lbw off successive deliveries before Dale Steyn denied him a hat-trick.
AB de Villiers fell run out to a direct hit by Zaheer before Paul Harris edged pacer Ishant Sharma behind to be wicketkeeper Mahendra Singh Dhoni's third victim of the innings and leg-spinner Amit Mishra had Steyn lbw.
South Africa skipper Smith fell to a beauty bowled through the gap between bat and pad after deciding to play despite a painful finger injury.
Amla and Petersen came together and produced a fine partnership.
The 29-year-old Petersen was handed a Test debut after wicketkeeper Mark Boucher was ruled out of the match with a back injury.
AB de Villiers will keep wicket in his place.
Petersen hit 16 fours as he flicked, pulled and drove India's seamers and used his feet nicely to the spinners.
Petersen continued with his exciting strokeplay and, although he got bogged down in the 90s, finally got his reward when he reached his century with a single off Mishra.
Amla was lucky to be dropped at 60 by Vangipurappu Laxman at slip, but he quickly recovered his composure and brought up his century with a cover drive to the boundary off Ishant.