The hosts looked well set at 96-0 in reply to England's 147-7, but openers Dane van Niekerk and Trisha Chetty's slow scoring put pressure on the tail.
Shrubsole removed Van Niekerk, before dismissing Lizelle Lee and Mignon du Preez as the hosts stumbled to 132-6.
Sarah Taylor earlier made 74 not out for England in Paarl.
Media playback is not supported on this device
"Our bowling performance in the last 10 overs was fantastic," Taylor told BBC Sport. "We limited what South Africa could do and were really smart with what we did."
The tourists made a slow start and were stuttering at 41-3 after the cheap dismissals of captain Charlotte Edwards, Tammy Beaumont and Amy Jones.
However, they were boosted by wicketkeeper Taylor's 51-ball effort, in which she struck 11 fours, with Shrubsole arriving to help take 18 from Shabnim Ismail's final over.
Van Niekerk and Chetty made 52 and 46 respectively, but struggled to keep pace with the run rate on a playing area with long boundaries.
Once they were dismissed within four balls of each other, South Africa's middle order found themselves with too much to do.
England play another two Twenty20 internationals against South Africa - in Cape Town on Friday and Johannesburg on Sunday - before travelling to India to prepare for the World Twenty20.
You can follow both matches live on BBC Radio 5 live sports extra and the BBC Sport website.
Earlier in the tour, England won the one-day series 2-1.
Anya Shrubsole took three late wickets as England women fought back to beat South Africa by 15 runs in the first Twenty20.