Drag-flicker Sandeep Singh converted two penalty corners as India beat hosts South Africa 4-2 to set up title date with Belgium in the Champions Challenge Hockey tournament in Johannesburg on Saturday.
Sandeep's short corner conversions in the 44th and 49th minute respectively enabled India to surge ahead after the two teams were level on 2-2.
V.R. Raghnath (13th minute) and Sarvanjit Singh (40th minute) earlier restored parity on two occasions after the home team scored through Marvin Harper (eighth minute) and Thronton McDade (22nd minute).
India had beaten South Africa 7-4 in their preliminary group league encounter.
India fielded Rupinder Pal Singh from the start as he recovered from the injury that forced him to be carried off the field on a stretcher in the quarterfinal against Malaysia.
The semi-final was played at a brisk pace and South Africa opened the scoring in the eighth minute when Drummond picked up a long through shot and pushed the ball in for Harper to flick past goalkeeper Bharat Chetri.
India equalised through Raghunath's penalty corner conversion in the 13th minute as he sent a low flick into the goal.
South Africa again capitalised on a defensive lapse when McDade got space to turn around in the circle after collecting Harper's cross to send the shot into the left corner of the goal in the 22d minute to give the hosts a 2-1 lead at the interval.
India again drew level five minutes into the second session when Sarvanjit scored with a reverse drive on a rebound after Sardar Singh's shot got stopped.
India were ahead 3-2 in the 44th minute Sandeep's penalty corner shot that went high into the net. Five minutes later, Sandeep's drag-flick went into the net as India went ahead by 4-2 margin.
India managed to thwart the South African despite two other players Arjun Halappa and Tushar Khandekar being sent off the field for 10 minutes each late in the second half.
Hosts South Africa, the African continental champions, had lot at stake in this match as a victory would have booked their passage to the 2012 Olympic Games.
South Africa's title win in the All-Africa Games gave them a direct entry to the London Olympics, but the South African Sports Confederation and Olympic Committee (SASCOC) said the level of hockey competition in the African championship was not very good, and the team must prove its strength to warrant Olympic Games participation.
SASCOC has put a condition that the team must make the final of this Champions Challenge, or otherwise surrender the direct Olympic Games entry and play in the Olympic Qualifiers.
By that condition, South Africa will now have to play in the Olympic Qualifiers in Japan, while their direct spot in the Olympic Games will go to the highest ranked team not to have secured direct entry to the 2012 Olympics, which is Spain.
In the first semi-final of the day, Belgium defeated Argentina in a closely fought match.