Root went to his ninth Test century to haul England back from the brinkGetty Images

Joe Root scored an inspired century to help England rebuild their first innings after South Africa blitzed through the top order on day two of the third Test in Johannesburg. After the Proteas were bowled out for 313, the tourists were reduced to 91 for 4 before Root [106 not out] and Ben Stokes [58] produced a stunning counter-attack which leaves the match finely poised.

Root and Stokes put on 111 in 15.5 overs at a run rate of above seven to stifle AB de Villiers' side and put the game back in the balance. The Yorkshire batsman went to his ninth Test hundred to affirm England's dominance as they closed to within 75 of the hosts' first innings total. Stokes scored at more than a run a ball before he top-edged Morne Morkel for 58.

South Africa carried momentum into the England innings by putting on 88 for their final three wickets, with Chris Morris making 28 before he became one of Jonny Bairstow's six catches. The morning session also included James Anderson being suspended from bowling by umpire Aleem Dar after being given a third warning for running on the pitch – just after Bairstow had dropped a catch off his bowling.

Though possessing an inexperienced attack, South Africa punctured the England top order with a spell of aggressive seam bowling either side of lunch as Alex Hales [1], Alastair Cook [18] – dismissed by Hardus Viljoen's first delivery in Test cricket – and Nick Compton [26] all fell cheaply, with Kagiso Rababa the main beneficiary with two wickets. James Taylor's dismissal for just seven left England teetering and requiring an almighty effort to come close to restoring parity.

But few could have expected what followed, as a pitch which could have been described as a minefield earlier in the day suddenly played into England hands and allowed Stokes and Root to launch a fine counter-attack with a rapid-fire century stand. Their impetus was muted by bad light and subsequent rain which curtailed play with England 238 for 5, but their performances illuminated an exhilarating day of Test cricket.