The Windies won the toss and opted to put South Africa into bat, and it proved to be a good decision as Hashim Amla was run out in just the third ball of the innings.
Despite the wickets tumbling around him, Quinton de Kock was able to keep the attack ticking as he hit 47 runs off 46 balls before he was bowled out by Russell.
The opener's knock was the highest score of the innings as the Proteas, who have recorded one win and a defeat so far, finished on 122-8 after 20 overs.
In reply, the West Indies were dealt an early blow when Gayle was bowled out by Kagiso Rabada in the fifth ball of the innings, with the big-hitter recording just four runs.
Dwayne Bravo could only contribute eight runs and it was a tense finish as his team required 24 runs from as many balls with six wickets remaining.
Chris Morris took a big wicket in the form of Samuels, who hit 44 off as many balls, and the Windies eventually needed nine runs from the final over.
Carlos Brathwaite smashed a vital six to help his team snatch a place in the semi-finals, which will also include England if they manage to beat Sri Lanka on Saturday.