South Africa skipper Temba Bavuma won the toss and elected to bat first against Australia in the second World Cup semi-final on Thursday with rain in the air.

Bavuma said he is still not "100 percent" after the hamstring injury he suffered against Afghanistan but "it will have to be good enough".

The winners of Thursday's game will take on undefeated hosts India, who knocked out New Zealand in the first semi-final, in Sunday's final at Ahmedabad.

The eastern Indian city of Kolkata witnessed rain in the morning and the ground staff at the iconic Eden Gardens were kept busy bringing the covers on and off in the hours before play.

It remained gloomy with the floodlights turned on as players from both teams went about their warm-up drills.

South Africa have made one change with leg-spinner Tabraiz Shamsi coming in for fast bowler Lungi Ngidi.

The Proteas will be looking to break their semi-final jinx after having failed to cross the final-four hurdle on four occasions including twice against Australia.

Their 1999 exit was the most painful when the match ended in a tie at Edgbaston and Australia went through due to a better group stage finish.

Pat Cummins' Australia are chasing their sixth World Cup title and are on a roll with seven straight victories en route to the semi-final.

All-rounder Glenn Maxwell and left-arm quick Mitchell Starc return to the team after both missed the team's last victory over Bangladesh. Marcus Stoinis and Sean Abbott miss out.

Maxwell's unbeaten 201 against Afghanistan remains the tournament's highlight when he rescued Australia from 91-7 and carried them to their victory target of 292.

Australia: David Warner, Travis Head, Mitchell Marsh, Steve Smith, Marnus Labuschagne, Josh Inglis (wk), Marcus Stoinis, Sean Abbott, Pat Cummins (capt), Adam Zampa, Josh Hazlewood

South Africa: Quinton de Kock (wk), Temba Bavuma (capt), Rassie van der Dussen, Aiden Markram, Heinrich Klaasen, David Miller, Marco Jansen, Keshav Maharaj, Gerald Coetzee, Kagiso Rabada, Tabraiz Shamsi
Umpires: Nitin Menon (IND), Richard Kettleborough (ENG)
TV Umpire: Chris Gaffaney (NZL)
Match Referee: Javagal Srinath (IND)