Sarah Taylor (66) top-scored in England's 156-6 but Dane van Niekerk hit 63 as South Africa reached 145-3 when the match was called off.
England, who had never lost a T20 to South Africa before this match, dropped Van Nierkerk on 6 and 22.
Van Nierkerk's 63 came off 43 balls, hitting seven fours and two sixes, as she put on 68 with captain Mignon du Preez.
That partnership took South Africa to 98-1, but Du Preez scored 47 not out and Marizanne Kapp 21 to take South Africa home.
England will rue their missed chances in the South Africa innings when a sloppy fielding performance saw them drop a number of catches, leak runs and miss run-out chances.
Taylor scored 66 from 52 balls for England, with eight fours, her second half-century of the series after her unbeaten 74 in England's win in Paarl.
Taylor had partnerships of 63 with Heather Knight (29) and 61 with captain Charlotte Edwards (34) but England struggled to kick on in the latter overs.
Despite late hitting from Danielle Wyatt, who scored 17 not out, England lost two wickets to run-outs in the final over in which they scored just four runs.
England captain Charlotte Edwards: "I thought we batted well and that should have been enough. We were undone by a brilliant innings by Van Niekerk and dropped catches cost us.
"We let ourselves down a little bit, but Dane really took the attack to us. We must take our chances."
South Africa captain Mignon Du Preez: "We knew that we had the firepower in the line-up, even though we had to go at eight an over. The momentum is with us so we're looking forward to a very competitive game at the Wanderers."
Dane van Niekerk: "I enjoyed myself at the top of the order. I did things differently than yesterday and it came up. I'm hitting the ball well."
Former England batter Ebony Rainford-Brent: "England bowled poorly and dropped catches and weren't up to standard. If they play at their best they will be fine because they have talented players such as Sarah Taylor, but they need to work on their game for the World Twenty20."
Both sides travel to the Wanderers for tonday's series decider .
Today's match is both teams' last before the World Twenty20 in India which starts on 15 March, with England beginning their campaign against Bangladesh in Bangalore on 17 March. AGENCIES