This is what we have done in the past, flew into JNB and the next morning flew into Skukuza Airport as it is only a 7klm drive to the park camp, where you get your wildcard for park entry. Since SIA arrives early in the morning you can get a connecting SA flight to Skukuza.
From Skukuza you can fly direct to CPT.
You would need at least 4 nights in CPT to get most of the main attractions done, if possible stay at the V&A Waterfront area.
From CPT you can fly back to Singapore via JNB, where you sit on the plane for an hour as you are not allowed to disembark.
Or you fly to CPT for your stay and get the SA direct flight to SKU to spend your time in the park then get another SA flight back to JNB for your return trip to Singapore.
SA airfares are cheap for these short trips.
You will love both Capetown and Kruger National Park.
Oh and Singapore Airlines only has one flight to South Africa, the 2.00am flight to CPT via JNB.