Pathum Nissanka hit 72 as Sri Lanka were bowled out for 142 by the Proteas in Sharjah on Saturday.
Tabraiz Shamsi returned figures of 3-17 from his four overs of leg spin and fast bowler Dwaine Pretorius also took three wickets after South Africa elected to field first in the T20 World Cup match.
De Kock returned to the Proteas lineup after missing the previous match. He took the knee in support of the Black Lives Matter movement, along with the rest of the Proteas team after skipper Temba Bavuma won the toss.
Fast bowler Anrich Nortje struck first as he bowled Kusal Perera for seven in the fourth over, but Nissanka and Charith Asalanka put on 40 runs for the second wicket.
Asalanka was run out in an attempt to take a second run before Shamsi took charge with his leg-spin bowling to push Sri Lanka on the backfoot. He made 21 off 14 balls.
Shamsi, who is the world’s No 1 T20I bowler, sent back Bhanuka Rajapaksa caught and bowled for nought and then got Avishka Fernando for three in a similar dismissal an over later.
Wanindu Harasanga became Shamsi’s third victim with Sri Lanka in trouble at 91-5 in the 14th over.
Nissanka hit back to reach his second half-century in the shortest format and smashed six fours and three sixes to surpass his previous T20I best of 61 and provide Sri Lanka with a fighting total.
He finally fell to Pretorius who had figures of 3-17 from his three overs.
Sri Lanka managed 48 runs from their last five overs.
© Agence France-Presse