Ben Stokes hit an unbeaten 74 to highlight a stabilising evening session as England's solid middle-order effort helped them to finish day one of the second Test against South Africa on 317/5. Alex Hales also recorded his maiden Test century, but the tourists had to withstand a period of pressure from Proteas paceman Kagiso Rabada at Newlands Cricket Ground in Cape Town.

England enjoyed a mostly productive morning after winning the toss and electing to bat, with Alastair Cook and Hales' opening partnership yielding more than 50 runs before Rabada, in for Dale Steyn who was ruled out of the match due to a shoulder strain, had the former snaffled wonderfully by Test debutant Chris Morris at third slip. Diving low to his left, he took an acrobatic one-handed catch to remove the captain for 27.

After lunch, Hales eventually fell for 60 when he prodded at a shorter delivery from Morne Morkel and saw AB de Villiers, replaced at wicket-keeper by Quinton de Kock as South Africa seek to reduce the heavy workload on their influential batsman, sprawl across the slip cordon to intercept.

Morris missed out on his second impressive catch of the day when Joe Root was dropped at gully, but Temba Bavuma made no mistake as he was picked out at mid-wicket by a mistimed pull from Nick Compton (45) off the bowling of Rabada.

That wicket fell with the very last delivery before tea, but Rabada gave himself the chance of a hat-trick immediately after the interval as an overly aggressive James Taylor edged behind for a golden duck. Root's habit of getting out shortly after reaching his 50 then continued when he handed Morris his first Test wicket in similar fashion. It was the fifth time in his last 11 innings that the Yorkshire stalwart has hit a half-century without going on to earn his ton.

Thankfully for England, that was to prove the last mishap on day one and Stokes then combined nicely with Jonny Bairstow throughout the evening to restore their commanding position. Trevor Bayliss' side are looking to take a 2-0 lead in the four-match series after winning the opening Test by 241 runs in Durban.