My gut feeling says that India has more experience, better players and they could be the winners. South Africa on the other hand, can be inconsistent in certain times and they do not have the big match pressure. Other than this World Cup, they always have lost in the Semi finals of the World Cups, so there will be an element of fear in their mind and body language on this big stage.
Virat Kohli has been a reliable batsman in the Indian team, with the highest number of wickets seen since his dismissal. Virat Kohli and Axar were the only two players who were patient in today's game, but the rest of the batsmen got out very easily. So it will never be possible to stop the South African team with the run target that the Indian team has collected today.
But for India team to win, they must perform well, in that case South Africa batsmen must be strong and aggressive. If they can perform patiently for a long time then surely South Africa team will win this match.