The Blitzboks had to recover from being 12-0 down to secure the win, with a strong second half showing getting them the win.
Samoa scored early following a yellow card to Werner Kok and got a second, after sloppy breakdown play by South Africa handed Samoa the ball.
Impi Visser pulled one back just before the break and the conversion cut the lead by seven points, 7-12.
The second half saw two more converted tries by South Africa. Justin Geduld scored first, before Selvyn Davids chipped ahead and beat the Samoan defence to the ball.
The Blitzboks will face the @USASevensRugby in the Cup semi final of @SgRugby7s at 09:50 SA Time. South Africa earned their place in the last 4 with a hard fought 21-12 win over @Samoa7s thanks to great defense and fitness. @CastleFreeSA @FNBSA @ASICS_ZA @ASICSRugby @wernerkok1 pic.twitter.com/YErBob61vf— Springbok Sevens (@Blitzboks) April 14, 2019