Harmanpreet Kaur won the toss for India Women and decided to bat first on a decent-looking pitch in good conditions.
Smriti Mandhana and Shafali Verma got them off to a brisk start, scoring at 10 runs an over for the first three overs before Mandhana was dismissed for 17 at the end of the third.
South Africa's bowlers kept things extremely tight after that, making scoring opportunities hard to come by for India's batters.
Wickets at regular intervals also helped keep the scoring rate down until later on in the innings when brisk cameos from Kaur (24 off 22 balls) and Deepti Sharma (29 off 21 balls) got India to a competitive total of 158/7 off their 20 overs. Verma top-scored for the innings with 31 off 15 balls.
Kapp opened the bowling and returned figures of 2/27 to have the best figures for the South African bowlers, with Shabnim Ismail also bowling well with figures of 2/28.
Nonkukuleko Mlaba, Ayabonga Khaka and Nadine de Klerk all picked up wickets while Chloe Tyron was the only bowler to struggle, conceding 23 runs from her two overs.
In reply, Laura Wolvaardt and Tazmin Brits got South Africa off to a steady if unspectacular start. They kept the scoreboard ticking but the scoring rate was a bit slow, which allowed the required run rate to creep up.
Wolvaardt scored 20 off 21 balls and Brits contributed 40 off 36 balls and had an important 97-run partnership with Kapp in the middle of the innings to set up a grandstand finish.
Kapp was easily the standout batter of the match, blasting 81 runs of just 45 balls with four sixes and seven fours to get South Africa back on pace and allow them to snatch a thrilling win in the final over.
Shree Charani was impressive with the ball for India with figures of 3/24 from her four overs, with Shafali Verma the only other bowler to pick up a wicket.
Arundhati Reddy, Prema Rawat and Sharma will all be disappointed with their performances with the ball, conceding 94 runs between the three of them at more than 10 runs an over.