South Africa won by 174 runs to level the series at 1-1 with one match left to play.
Fast bowler Ntini took five for 48 to help dismiss India, who needed 354 to win, for 179 in the seventh over after tea on the fifth day.
South Africa were dismissed for 328 in their first innings, to which India replied with 240.
South Africa declared their second innings closed on 265 for eight.
Bad light delayed the start of play by 55 minutes and allowed just 4.3 overs to be bowled before lunch.
Ntini made good use of his limited opportunity in the morning, however, when he claimed two wickets for one run in the 15 deliveries he bowled before bad light ended the session.
Ntini struck with the fifth ball of the day's play by trapping Sachin Tendulkar in front for a seven-ball duck with a delivery that would have hit the top of middle stump.
Nine balls later Wasim Jaffer, who batted patiently for his 28, attempted to pull a short delivery from Ntini and top-edged a catch to Andre Nel at mid-on.
Sourav Ganguly was dismissed for 26 in the 10th over after lunch when he steered a delivery from Ntini to Herschelle Gibbs in the gully.
Fast bowler Andre Nel reduced India to 85 for six when he speared VVS Laxman's guard to bowl him for 15.
Anil Kumble, who scored 11, was undone by a bouncer from medium pacer Andrew Hall that he fended to Hashim Amla at short leg.
Mahendra Dhoni and Zaheer Khan slowed South Africa's progress with a defiant stand of 59 for the eighth wicket.
India might have slipped to 132 for eight but Gibbs at fourth slip dropped a catch offered by Zaheer Khan on eight off a no-ball from fast bowler Morne Morkel.
Nel ended the partnership two balls before tea when Dhoni, who hit 10 fours in his 47, flashed outside his off-stump and was well caught by wicketkeeper Mark Boucher diving in front of first slip.
Khan, who scored 21, became Nel's third victim by edging to Hall at third slip in the sixth over after tea.
The match ended two balls later when Shanta Sreesanth was given out caught behind by Boucher off Hall for 10. Nel took three for 57.
India won the first Test in the three-match series by 123 runs in Johannesburg. The third Test starts in Cape Town on Tuesday.
South Africa 328 and 265 for 8 decl beat India 240 and 179 ( M S Dhoni 47, ourav Ganguly 26, Jaffer 28, Zaheer 21; Ntini 6 for 48, Nel 3 for 57)