The average flight duration from Canada to South Africa depends on which airport you fly into and out of. Flying from Toronto Pearson Intl to Johannesburg OR Tambo is 21h on average, while flying from Vancouver Intl to Johannesburg OR Tambo is 24h 55m on average. Johannesburg OR Tambo is the most popular airport in South Africa.