The Proteas closed on 137 for four – a healthy deficit of 166 – but there were chances that begging too.
Ben Stokes would have had Dean Elgar (67no) lbw had England reviewed Aleem Dar’s not out decision and the Durham all-rounder also looked to have caught De Villiers long before his eventual dismissal.
Yorkshire’s Jonny Bairstow also dropped Amla, though the home captain could not cash in.
“For sure, we left a couple of wickets out there,” said Broad.
“That’s something we’re still trying to work on as a team...not having to take 25 wickets to win a Test match, taking all our chances.
“The reviews were all our fault really. We thought Elgar hit the ball on the lbw, which is why we didn’t call for the review, but people make mistakes.”
The tourists were unanimous that De Villiers, who made 49, was out for 11 when Stokes gathered an edge off Steven Finn’s bowling but Broad took a pragmatic view.
“The encouraging thing as a bowling group is we’re creating those chances,” he said.
“All our management said ‘that’s 100 per cent out’ on Stokesy’s catch, but I’m sure South Africa’s changing room would have said it’s not out.”
On a personal level, Broad’s game appears in good order.
Having ushered England to 303 with 32 not out with the bat, he read the pitch brilliantly and found real purchase with his leg-cutter.
He has now taken 54 Test wickets this year, second only to India spinner Ravichandran Ashwin.
“I definitely feel like I’ve improved. Bowlers always say they peak between 28 and 32 and I hope that’s the case,” said the 29-year-old.
“I feel like I’m a bit more experienced and I know my game a bit more. It was nice to hit some rhythm and get the tour off and running.”
Morne Morkel began the day by taking four wickets to run through England’s dangerous middle order.
“We could have been looking at 450 and still bowling, so it was crucial to take those wicket because England bat deep,” he said.
“The morning is crucial for us because it’s still pretty even.”