Ben Stokes hammered his way to a fine century on the second morning of the third Test against South Africa, as he and Ollie Pope swung the match firmly in England’s favour.

Having bowled his side to victory on the final day in Cape Town, Stokes was back at his punishing best with the bat in Port Elizabeth, reaching his ninth Test hundred in 174 deliveries, with 10 fours and two sixes.

After a 45-minute rain delay England resumed with a hard-fought base of 224 for four, Stokes and Pope on 38 and 39 respectively. When Stokes reached three figures half an hour before lunch, that had stretched to 326 without further loss.

Any pretence of an even contest between bat and ball was swiftly put to bed as the duo piled on 72 runs in the first hour. Pope (74no) looked stylish and composed as he brought his third half-century for England, but Stokes was in domineering mood.

He pipped Pope to the fifty, standing tall and crashing Kagiso Rabada for two pulled fours in an over and set about the task of bullying left-arm spinner Keshav Maharaj.

He had brought consistency and control on day one but found Stokes in unforgiving mood, conceding 12 in his first over – including a slog-swept six. His next visit brought four leg-byes and an even bigger hit from Stokes, clearing not only the ropes but the ground’s perimeter fence.

Having brought up their hundred stand in 185 deliveries, the fifth-wicket pair scored their next 50 at better than a run-per-ball. The checkpoints kept coming as South African heads dropped, first England’s 300 and then Stokes’ 4000th Test run, courtesy of another muscular hit off Maharaj.

Stokes moved to 99 with a chop for two to third man and then stroked Dane Paterson for a single to get over the line, celebrating by removing his glove and making a hand gesture in recognition to his father Ged, who remains hospitalised in Johannesburg.