Amajita still have their destiny in their own hands as they will qualify for the semifinals, and the 2017 FIFA Under-20 World Cup, if they defeat Sudan in their final pool match on Sunday.
The Sudanese slipped to a 4-1 loss against Cameroon earlier on Thursday, but did hold Senegal 1-1 in their opener.
Amajita led on 38 seconds when Luther Singh picked out Liam Jordan in the six-yard box and the Sporting Lisbon youngster headed home.
It was the perfect start for the South Africans in an open beginning and Senegal nearly found the equaliser when Aliou Badji blasted the ball against the crossbar minutes later.
But it was the free-flowing Amajita who got the next goal and the excellent Singh broke on the left-hand side and his square ball was easily steered home by captain Tercious Malepe.
Senegal pulled a goal back three minutes into the second half when Ibrahima Ndiaye blasted home a free-kick from the edge of the box, though the Amajita wall should have done better to keep the shot out.
And it was 2-2 on 54 minutes as South Africa goalkeeper Mondli Mpoto flapped at a corner kick, allowing Ousseynou Diagne to head home.
But now Senegal were well on top and Diagne got his second with a superb long-range effort, before Krépin Diatta added the fourth as he headed home when Katlego Mohamme’s attempted clearance came back off the crossbar and into his path.
Shell-shocked Amajita brought themselves back into the contest with 10 minutes remaining when Singh turned his marker and slid the ball into the back of the net from a tight angle.
Mokoena struck the crossbar late on for Amajita, but in the end their poor defending cost them dear.