If you are flying from Europe into JNB, I recommend you fly either Lufthansa or Swiss Air. Service is much more reliable than South African Air.
Remember too, it's winter in South Africa, so cooler temps prevail, especially at night. Western Cape tends to be on the wet side this time of the year. Same with Mauritius.
Flights to Cape Town from JNB either via South African Airlines, Kulula (no-frills) or Mango Airlines (less service than SAA). Latter two are more economical.
Regarding Safari: Major attraction is Kruger National Park. However, lots of tourist. An alternative is Pilanesberg National Park west of Pretoria. Not as extensive as Kruger, yet big animals there too and way less tourist.