Lots of very cheap fares in Europe to JNB using various "fringe" airlines (like Turkish). However you might be in luck, recently IB has been offering ridiculously low fares JFK-MAD-JNB and presumably CPT, something like USD 600. If that fare is still available it would be by far the cheapest way to go. Otherwise try IB from LHR, FRA or VIE. You might find CPT to be double the JNB price, though.