The decision to shift the tournament out of India was taken at the CLT20's Governing Council meeting in Chennai on Sunday.
The GC also decided to include Mumbai Indians as the fourth Indian team in the eight-team tournament which will see for the first time the participation of a Pakistani side.
The decision is expected to be ratified at another GC meeting to be held in Kuala Lumpur on June 26 on the sidelines of the ICC annual conference. A top BCCI source said the reasons for shifting the tournament to South Africa range from monsoon to Durga Puja celebrations that will coincide with the event, the dates of which are yet to finalised.
"Kolkata is not in a position to hold any of the matches because of Durga Puja during that time. Many of the Southern venues will get monsoon showers which will affect the matches," the source told PTI.
"South Africa has been sounded out and they will give their final decision soon. Once we get their response, we will shift the tournament to South Africa," the source said.Mumbai Indians, which finished fourth at the recently-concluded IPL, have also been given the opportunity to take part in CLT20.
Normally only the top three teams of the IPL participate in the event. The GC also approved the participation of Pakistan's Sialkot Stallions in the tournament. They will take part in the qualifiers to make the cut in main draw, which will feature four teams from India, two from Australia and one from South Africa.
New IPL champions Kolkata Knight Riders, runners-up Chennai Super Kings and Delhi Daredevils are the teams confirmed participants for this year's CLT20.
It will be for the first time that a team from Pakistan will take part in the Champions League Twenty20 since the event's inception. It indicates a thaw in Indo-Pak bilateral cricket ties which had been snapped after the November 2008 terror attacks in Mumbai. It could also now pave the way for participation Pakistani players in the IPL for the first time after 2008.
South Africa had previously hosted the Champions League in 2010 prior to which the country played host to the Indian Premier League in 2009.