Australia will meet India in the final in Melbourne on Sunday in a repeat of the opening match of the tournament.
Lanning hit four fours and a six as she remained unbeaten on 49 with contributions from opener Beth Mooney (28) as the four-time champions posted 134/5 in 20 overs after being asked to bat first. For the South Africans, Nadine de Klerk (3/19) took three wickets.
As rain played spoilsport, the game was shortened to 13 overs but South Africa could not get to their revised target of 98 as they managed 92/5 with wickets falling at regular intervals.
Laura Wolvaardt remained not out on 41 and looked set for a fight but others did not respond in the same manner except Mignon du Preez (21) to some extent. For the Aussies, Megan Schutt returned best figures of 2/17 in three overs.
Brief Scores: Australia 134/5 in 20 overs (Meg Lanning 49 not out; Nadine de Klerk 3/19); South Africa 92/5 in 13 overs (Laura Wolvaardt 41 not out; Megan Schutt 2/17)