Winning the toss is expected to be a big advantage for 1996 champion Sri Lanka, which has been runner-up at the last two World Cups. South Africa has never won a knockout match at the premier 50-over tournament.
Veteran left-arm spinner Rangana Herath was ruled out of Sri Lanka's squad hours before the match, and 22-year-old Tharindu Kaushal was rushed straight into the starting lineup.
South Africa chose Kyle Abbott, who has taken eight wickets in three matches during the tournament, at the expense of Vernon Philander.
Sri Lanka wins toss, send South Africa in to bat in 2nd test