Two other half-centuries — from Laura Wolvaardt (90) and Sune Luus (61), and a quickfire 41 off 16 deliveries from Nadine de Klerk took South Africa to 9-312 after the match had been shortened to 40 overs because of rain at R Premadasa Stadium in Colombo on Tuesday.
Pakistan's chase had three rain interruptions, which resulted in their target being reduced gradually from 306 in 40 overs to 234 in 20 overs under the D/L method.
They had reached 4-48 in 12 overs when the match resumed after the last rain stoppage, handing them an improbable task of scoring more than 23 runs per over. They managed 7-83 at the end of 20 overs.
South Africa went into the match having already secured a spot in the semi-finals of the eight-nation tournament but Pakistan needed a win to maintain an outside chance of reaching the final four. The defeat left Pakistan winless and eliminated.
After the Proteas lost Tazmin Brits (0), Wolvaardt and Luus added 118 runs for the second wicket off 99 deliveries. Wolvaardt was involved in another 64-run partnership for the fourth wicket with Kapp.
Spinner Nashra Sandhu took 3-45 and seamer Sadia Iqbal 3-63 for Pakistan.
When Pakistan batted, Sadra Nawaz top-scored with 22 not out as Kapp destroyed their chances with 3-20.
South Africa face defending champions Australia in their final group-stage clash on October 25, while Pakistan will hope to end their campaign on a positive note against Sri Lanka the day before.