South Africa have failed to reach the 2018 CAF African Nations Championships tournament after losing their second leg qualifier 2-0 to Zambia on Saturday at Levy Mwanawasa Stadium in Ndola.
The 2-0 result in Ndola follows a 2-2 draw last weekend in East London, South Africa, as Chipolpolo claim a 4-2 aggregate score.
A brace through Justin Shonga ensured Wedson Nyirenda's side have qualified for the tournament in Kenya.
As early as the seventh minute, Chipolopolo showed their intentions when a shot at goal by Augustine Mulenga shaved off Bafana keeper Bruce Bvuma's post.
A few minutes later, Ernest Mbewe nearly opened the scoring when his brilliant header went agonisingly wide of Bvuma's goal.
It took Bafana Bafana 30 minutes to cause trouble for the Zambian defence. Dumisani Zuma tried two shots at goal but could not trouble keeper Toaster Nsabata, as the Kaizer Chiefs player missed the target.
However, with nine minutes to go to the interval, Wedson Nyirenda's men nearly scored from a set piece after Bvuma was disturbed by a deflection, but he recovered well to make a save.
There were no goals in the opening half. However, the return from the tunnel saw the South Africans pushing for an early goal and Bonginkosi Ntuli took a shot, yet he failed to find the back of the net.
The 56th minute allowed Zuma to break free and managed to unleash a powerful shot which went inches over the crossbar, with Nsabata beaten.
As the encounter entered the final 20 minutes, Thabo Senong's charges produced brilliant moves, but Sibusiso Khumalo's header went wide.
Despite SA pushing for an opener, it was Shonga's goal which separated the two nations as he sprung the offside trap before beating Bvuma.
With seven minutes remaining, Shonga completed his brace as he finished from close range to ensure a 4-2 aggregate advantage.
Zambia (0) 2 (Shonga 80', 83')
South Africa 0
Zambia: Nsabata, Chama, Kapumbu, Tembo, Shamujompa, Malama, Mbewe, Katiba (Ngwenya 61'), Ng'onga, Shonga, Mulenga (Chin'gandu 44')
Bafana: Bvuma, Moleko, Khumalo, Booysen (c), Pietersen, Mntambo, Kumalo, Shongwe, Zuma (Webber 73'), Ntshangase, Ntuli (Mabasa 85')