Banuka Rajapaksa's magnificent 79 ensured Sri Lanka a dominating 146-run victory over South Africa in their ICC under-19 World Cup quarter-final in Wellington on Sunday.
Sri Lanka proceed to play Australia in the second semi-final on Wednesday with Pakistan, who edeged holders India, playing the West Indies in the first semi-final on Monday.
Earlier, Australia scored a 62-run win over New Zealand.
Rajapaksa, who was predictably named the man-of-the-match, belted 10 fours as he top-scored with 79 (78 balls) in Sri Lanka's mammoth 293 for eight.
South Africa were two wickets down by the seventh over, when rain stopped play and a revised target of 292 in 49 overs was set.
After resumption Josh Richards (46) and Colin Ackerman (21) put on 50 in 56 balls for the third wicket.
But the fall of Ackerman in the 16th over triggered a collapse from which South Africa never recovered. They were dismissed for 145 (36.4 overs) with Charith Jayampathi taking 4-31.
At Rangiora, Australia scored 232 for eight against the hosts with skipper Mitchell Marsh, son of former Australian wicketkeeper Rodney Marsh, top scoring with 53.
New Zealand were dismissed for 170.