|South Africa 275-7 (50 overs): Wolvaardt 80, Goodall 49, Du Preez 52*|
|India 274-7: Raj 68, Verma 53, Kaur 48|
|South Africa won by three wickets.|
|Scorecard. Final group-stage table|
Mignon du Preez made an unbeaten 52 to help South Africa eliminate India in a last-ball thriller and set up a Women's World Cup semi-final against England.
South Africa - already guaranteed a semi-final spot going into the last game of the group stage - overcame India's 274-7 with the final ball of their 50 overs.
With three needed from two balls, Du Preez was caught off a Deepti Sharma no ball. Reprieved, she duly scored the winning run from the final ball to send the 2017 finalists out.
Defeat means India fail to dislodge West Indies from fourth place, so the Windies will play unbeaten Australia in the other semi-final.
West Indies promptly uploaded footage of players celebrating South Africa's final-ball victory in Christchurch.
Buoyed by a knock of 80 from Laura Wolvaardt and 49 from Lara Goodall, South Africa completed the second-highest successful run chase in Women's World Cup history in reaching 275-7 to win by three wickets.
India could be forgiven for feeling sorry for themselves having been on the receiving end of the highest run chase in the tournament's history eight days earlier, as Australia made 280 to beat them.
Du Preez - who scored just nine runs from her first three games in the tournament - could take the late acclaim, even though Sharma was agonisingly close to dismissing her with the penultimate ball.
"I have been very fortunate as the girls have supported me," said Du Preez.
"I haven't had the best start to the tournament with the bat but to to be able to do it for us today is very special. It means the world. It's been a tough few weeks. Getting the momentum right into the semi-final, I'll take that any day of the week."
|Australia v West Indies - Tuesday 29 March - 23:00 BST|
|England v South Africa - Thursday 31 March - 02:00 BST|
|Both matches to be broadcast by BBC Radio 5 Live Sports Extra and BBC Sounds|
Earlier India captain Mithali Raj made 68 but her side - beaten by England in the final in 2017 - could not quite see out the closing stages.
"With the bowlers we have I felt that 275 was a good total coming from where the bowlers have defended similar in the past," said Raj.
"It went to the last ball so I think it was good for the sport. It ended our campaign but I am very proud of the girls as we made a comeback into the tournament despite losing some games."
South Africa's success gives them the chance to reach a first final, having suffered semi-final losses in 2000 and 2017.