Watched by a record opening-day crowd of almost 24,000, Hudson scored 80 and McMillan 34 to enable the home side, reduced to 113 for 5, to claw their way back to a semi-respectable first-innings score of 235. With the fans baying for blood, India survived an over each by Allan Donald and Shaun Pollock and will resume batting on 2 without loss in the morning.
After Hansie Cronje had lost the toss yet again - he has called correctly twice in 12 spins - the South Africans were on the back foot from the moment they lost Gary Kirsten to Venkatesh Prasad in the fourth over of play.
Their new cap Adam Bacher, however, batted comfortably through to lunch to help Hudson put on 62 for the second wicket. When Bacher was trapped leg before by Javagal Srinath for 25 seven balls after the break, the innings nosedived from 70 for 1 to 113 for 5. Bacher was joined back in the pavilion by Daryll Cullinan (1), Cronje (15) and Herschelle Gibbs (0), and Hudson was fighting a lone battle.
For a man who, just two Tests back, had been told that his neck was on the line, Hudson's was the perfect reply. He did, of course, earn himself a reprieve in the final two Tests in India, with a masterful 146 at Eden Gardens followed by a dogged 31 off 180 balls at Kanpur. At the crease for 288 minutes yesterday, Hudson faced 191 balls and hit 12 fours.
After a string of lacklustre batting performances on the subcontinent, McMillan returned to something like his true form. He batted sensibly for his 34 off 99 balls, which included two boundaries. Cronje, Cullinan and Gibbs will not be happy with their soft dismissals. All three went on fishing expeditions and were snapped up by the wicketkeeper Nathan Mongia.
Recalled after an injury-induced lay-off, Shaun Pollock also displayed plenty of application in scoring an unbeaten 23 off 47 balls and in 96 minutes.
His fellow all-rounder Lance Klusener did not have much joy. What should have been third slip Prasad's catch was palmed into the air by the fielder for Mongia to take his fourth of the innings. Prasad was back in the picture a few minutes later when he had Donald caught by Vikram Rathore. It was the third time he had taken five wickets or more in an innings.
First day; India won toss
SOUTH AFRICA - First innings
A C Hudson c Mongia b Ganguly 80
G Kirsten b Prasad 2
A M Bacher lbw b Srinath 25
D J Cullinan c Mongia b Prasad 1
*H W J Cronje c Mongia b Prasad 15
H H Gibbs c Mongia b Johnson 0
B M McMillan lbw b Johnson 34
S M Pollock not out 23
D J Richardson b Prasad 24
L Klusener c Mongia b Srinath 1
A A Donald c Rathore b Prasad 5
Extras (b4 lb10 nb11) 25
Total (86 overs) 235
Fall of wickets: 1-8, 2-70, 3-71, 4-99, 5-113, 6-162, 7-190, 8-229, 9- 230.
Bowling: Srinath 20-7-36-2; Prasad 19-6-60-5 (2-nb); Johnson 15-2-52- 2 (9-nb); Tendulkar 2.4-2-0-0; Kumble 20.2-3-61-0; Ganguly 9-4-12-1.
V Rathore not out 2
W V Raman not out 0
Total (for no wicket) 2
To bat: S Ganguly, *S R Tendulkar, M Azharuddin, R S Dravid, N R Mongia, A Kumble, J Srinath, D Johnson, V B K Prasad.
Bowling: Donald 1-0-1-0; Pollock 1-0-1-0.
Umpires: S Dunne (NZ) and D Orchard.