You didn't give much indication of your direction. If you were going west coast to NRT, which makes sense, then UA from SFO/LAX/DEN. I would suggest Singapore Airlines as the bridge to go from NRT to JNB. Coming home you can swing down to CPT for the EWR direct, or most of the time the flights are back through Europe. I have taken JNB-FRA quite a few times - it arrives in the morning so you can make the connection to the USA back to SFO/LAX/ORD.