Ben Stokes had Quinton de Kock caught behind for 34 as England looked to stem the South African tide in the first Test at Centurion.