At one stage, South Africa, thanks to the efforts of openers Quinton de Kock (31 off 15 balls) and Temba Bavuma (43 from 27 deliveries), threatened to post a mammoth total after reaching 105 for one from 10 overs.
However, after Moeen Ali had taken one for 22, fellow spinner Adil Rashid (one for 23) and Ben Stokes (one for 24) checked the home side's progress and they eventually settled for 177 for eight in a three-match series where England are ramping up preparations for this year's T20 World Cup.
Tom Curran, Mark Wood and Chris Jordan endured a chastening experience up front but the latter came back well in the final over, taking two wickets in as many balls after South Africa were invited to bat first.
In a tale of two ends in the first powerplay, Moeen yielded just 17 runs in his three overs and took the crucial wicket of De Kock, while Curran, Wood and Jordan conceded a combined 49.
Each paceman was taken the distance, with Wood enduring a nightmare start as a beamer that was tickled for four was followed by a free-hit which looked suspiciously close to being another no-ball for height being helped for six.
De Kock eventually holed out to deep midwicket but the industrious Bavuma and Rassie Van Der Dussen showed no sign of applying the handbrake, the former cleverly ramping Curran over his shoulder for four.
Van Der Dussen followed suit off Rashid to bring up South Africa's 100 before escaping what seemed a plumb lbw off the leg-spinner, technology showing a full-toss would have crept by leg stump, to almost everyone's bemusement.
However, not for the first time on this tour, the introduction of Stokes led to a breakthrough as Van Der Dussen pulled to deep square-leg for 31 to end a 63-run stand.
Joe Denly, who had earlier taken the catch to see off De Kock, dropped a low chance in the deep to reprieve Bavuma but two balls later the opener swept Rashid into the grateful hands of Moeen at short fine-leg.
England's shortcomings in the field once again came to the fore as Jason Roy dropped a steepler after JJ Smuts had got a leading edge off Rashid, who, like Moeen before him, had proved difficult to get away.
The combination of the spinners and Stokes stifled South Africa and meant that while David Miller briefly sparkled, his attempt to tuck into Curran meant he clubbed to Jordan running back from mid-off.
Andile Phehlukwayo smashed his first ball over long-off for six in the increasing gloom before dispatching Jordan over the midwicket boundary.
However, after Wood conceded only three from the penultimate over, including the wicket of Smuts, who struck a low full-toss to Stokes at mid-off, Jordan took centre stage.
He bowled both Dwaine Pretorius and Beuran Hendricks while Phehlukwayo was run out from the final ball of the innings, attempting a non-existent single after hitting straight back to the bowler.