We always use Skyscanner and go to Cape Twon often.
Generally cheapest flights are usually with Air France/KLM (you can get cheaper if you want but you have long layovers and/or flying with Ethiopia/Turkish airlines etc) - you can get return flights at the end of Jan for three weeks into early/mid Feb for just under £500 ea at the moment which is the cheapest I have seen for some time for flights without long layovers. Look for overall flight duration of no more than around 18 hours via paris/Amsterdam and joburg (we fly from Manchester) or 15 hours with one stop and direct from Paris/Amsterdam to Cape Town.
You can go with BA from Heathrow direct but they are not competitive at the moment. Alternatively if you go via Middle East you can get good deals with Qatar or emirates but have longer flight times as you are going across to come down, still no more than 20 hours each way though.
In the past we have looked to book around 5 months out from travelling, but at these prices I’d be in now - I’m trying to convince the mrs that we should go again!
Virgin only go to JNB nowadays, so you'd need a transfer. Or maybe go down to Cape Town on one of the special trains e.g Blue Train ( from Pretiria a taxi ride from JNB ). Just a crazy suggestion there.
As flights are through the night, you might want to take a look at better seats like Premium Economy on Virgin and Air France, which are good options for PE. Not lie flat like biz seats but nice and more likely you'll get slept - and especially since in economy its getting more cramped - e.g. 787s already so and 777s now densified to ten. Also check out Thomas Cook airline from LGW Gatwick, who have their own version of PE seating and may be cheap, I don't know. Youtube is your friend to check out these options.
Regarding timing of visits to SA, weather is highly different in Cape Town seasonally to other parts of the ****ry so be specific when looking at climate.