The Proteas were 323 for eight at lunch -- still 135 runs behind England's first innings 458 and with all their frontline batsmen dismissed.
Vernon Philander was 21 not out and Keshav Maharaj five not out.
Wicket-keeper/batsman de Kock delighted a capacity crowd with a 36-ball fifty - the second fastest in a Test at Lord's -- featuring 10 fours.
But the 24-year-old left-hander's innings ended when, to his obvious frustration, he sliced a square-drive off James Anderson and Ben Stokes, England's best fielder, held an excellent low catch, going to his right, in the covers.
More From This Section
Temba Bavuma was 48 not out and nightwatchman Kagiso Rabada unbeaten on nine, with sunny blue skies promising good batting conditions.
It would have been an awkward evening for Rabada who on Friday was banned from next week's second Test at Trent Bridge after his verbal abuse of Stokes on Thursday's first day, combined with previous offences under the International Cricket Council code of conduct, saw him incur a one-Test suspension.
England, fielding two spinners in a Lord's Test for the first time since 1993, then saw both their slow bowlers take wickets.
Hampshire left-arm spinner Liam Dawson, on his home debut, made the initial breakthrough with just his second ball Saturday when Rabada (27) edged to wicket-keeper Jonny Bairstow.
Off-spinner Ali, who on Thursday completed both halves of the Test all-rounder's double of 2,000 runs and 100 wickets in just his 38th match -- fewer than it took cricket greats Ian Botham, Garry Sobers and Imran Khan to achieve the same feat -- then had Bavuma taken by Stokes at slip after the ball had diverted off Bairstow's thigh.
But de Kock struck Broad for three fours in as many balls -- a whip off middle stump through midwicket followed by two stylish square-drives.
It was just the response South Africa have come to expect from de Kock.
The 90th over also saw him hit three fours off Broad -- the best a whipped drive through mid-on from a ball pitching outside off stump -- before his exit ended a stand of 66 in 75 balls with Philander.