South Africa beat Sudan 3-1 to book their place from Group B with Senegal defeating Cameroon 2-0.
The Amajita of South Africa opened the scoring in the 15th minute against Sudan in Lusaka through Phakamani Mahlambi but Sudan bounced back nine minutes later courtesy of Khaled Osman.
South Africa regained the lead in the second half when Grant Mergeman was set up by substitute Kobamelo Kodisang to hit home the second goal.
Man-of-the-match Sobobgakonke Mbatha completed the rout in the 66th minute to send the Sudanese packing.
Senegal dumped the Cameroonians out of the tournament after beating their fellow West Africans 2-0 in Ndola thanks to goals from Ibrahima Niane and Krempin Diatta.
Senegal will now face Guinea in the semi-finals on Thursday in Ndola at the Levy Mwanawasa Stadium.
Before that, home hopes will be pinned on Zambia when they face South Africa in the first semi-final on Wednesday at the Heroes Stadium in Lusaka.
The final will also be held in Lusaka on Sunday.
All four semi-finalists - Zambia, Guinea, South Africa and Senegal - will represent Africa in South Korea in May.
The draw for the 2017 Fifa U-20 World Cup will be held on 15 March.
South Africa and Senegal both recorded victories on Sunday to join hosts Zambia and Guinea in the Under 20 Africa Cup of nations semi-finals, with all four earning a place at the Fifa U-20 World Cup in May.