|England 293-8 (50 overs): Wyatt 129, Dunkley 60, Ismail 3-46|
|South Africa 156 (38 overs): Du Preez 30, Ecclestone 6-36, Shrubsole 2-27|
|England won by 137 runs|
England will face Australia in the final of the Women's World Cup after Danni Wyatt's magnificent century propelled the defending champions to a 137-run defeat of South Africa.
Opener Wyatt took advantage of being dropped five times to crash 129 from 125 balls, the backbone of England's 293-8 in Christchurch.
She added 116 for the fifth wicket with Sophia Dunkley, who made a measured 60, while Sophie Ecclestone rounded off the innings with 24 from only 11 balls.
South Africa's chances of pulling off the largest chase in women's one-day international history largely rested on the dangerous opening pair of Laura Wolvaardt and Lizelle Lee.
But Anya Shrubsole, the hero when England beat the same opponents in the semi-finals in 2017, removed both to leave the Proteas 8-2.
Spinner Ecclestone, the world's best bowler, then tore through the lower order for her first international five-wicket haul, ending with 6-36 as South Africa were dismissed for 156.
It continued a remarkable turnaround from England, who were on the brink of elimination after losing their first three games but have now won five in a row to reach a second successive final.
Heather Knight's side will meet the all-powerful Australians at the Hagley Oval on Sunday (02:00 BST) in what promises to be a grandstand finale to a superb tournament.
England produce best when it matters
It seemed scarcely believable that England could reach the final when they lost to South Africa, their third defeat of the group stage, on 14 March.
Even some of the players have admitted to believing they were out of the tournament.
Since then, they have steadily improved, eradicating errors with the ball and in the field, and finding contributions from most of their batters.
The resurgence built to this performance in Christchurch, a dismantling of a talented South Africa side that had previously only lost to Australia.
For the Proteas, this was a complete contrast from the previous victory over England. Whereas then it was Knight's side who missed chances in the field, this time it was South Africa who looked affected by the pressure of the occasion.
It meant South Africa once again lost in a global semi-final - they have been beaten in all three of their 50-over World Cup last-four ties to go along with two losses at the same stage in the T20 version.
Wonderful Wyatt's finest hour
Wyatt has had a nomadic 12-year international career. Originally picked as an off-spinner, she has been moved up and down the batting order and was dropped during the World Cups of 2013 and 2017.
However, after being promoted to open earlier in this tournament, she enjoyed her finest hour, making her highest score in an ODI when England needed it most.
The five drops were of varying difficulty, but the chances missed by Marizanne Kapp at mid-wicket when Wyatt was on 36, then by Lara Goodall at deep mid-wicket on 77, were particularly poor. The other drops came when Wyatt had 22, 116 and 117.
In between, the right-hander slashed through the off side and hustled between the wickets. When England found themselves 126-4 in the 26th over, they were in a parlous position, only for Wyatt and Dunkley to combine in a brave counter-attack.
And, after South Africa finally held a Wyatt miscue to short third, Ecclestone's cameo pushed England out of sight.
Ecclestone and Shrubsole bowl England to victory
While Ecclestone's figures are eye-catching, it was Shrubsole who effectively ended the South Africa chase before it started.
Shrubsole took England to victory in the final and semi-final five years ago, and dragged them over the line with the bat against New Zealand earlier in this tournament. Here, she tumbled to hold Wolvaardt off her own bowling, then had Lee turn a catch to mid-wicket.
Left-armer Ecclestone was held back until the 24th over, by which time South Africa were already four wickets down.
And, with the lower order exposed, Ecclestone took all of the remaining wickets on offer with her trademark bounce, guile and accuracy.
Kapp and Mignon du Preez were bowled, Chloe Tryon, Shabnim Ismail and Masabata Klaas chipped catches and Trish Chetty was stumped by yards to become the last to fall.
As Ecclestone grabbed the match ball and Wyatt was named player of the match, some England players were in tears of joy.
Only Australia stand in their way of a complete turnaround and another world title.
'A complete performance'
England captain Heather Knight: "I'm really pleased. I think that was a complete performance from us today, what we've been searching for.
"The fact we have played knockout cricket for the last four games has helped us as well.
"We'll go into the final as underdogs but it's a fresh slate, we're all equal on the morning of the game and what a story has been written for us if we can do it."
South Africa captain Sune Luus: "We didn't have our best fielding performance. They played extremely well today, and all credit to them. But we needed to bring our best performance today, and we didn't, so we are feeling that.
"We needed to be more clinical. It's something we will keep working on but we have had a great campaign, we won't be taking away from that."