South Africa will resume on Monday with Elgar unbeaten on 72 and Temba Bavuma on 16, and despite the bleak outlook assistant coach Adrian Birrell insists the tourists will scrap for a draw.
England have South Africa on the mat at stumps on Day Four of the third Test.
South Africa's reply was quickly in trouble even after Jennings dropped Elgar at third slip off James Anderson before he had reached double figures.
Stokes shared stands of 63 and 75 with Cook and Jonny Bairstow respectively as England capitalised on Vernon Philander's prolonged absence during another overcast morning that should have suited the key paceman.
But with only three other teams having bat out the fifth day to save a Test in the same position, England will feel much of the hard work is done.
For that he owes gratitude to plenty aside from his vice-captain, including Alastair Cook for his grit and Toby Roland-Jones for his five-wicket debut in the first innings.
Heino Kuhn was 10 not out.
Roland-Jones dismissed Hashim Amla (five) for the second time in the match when Root grasped a low chance at second slip as the batsman attempted to leave, the seamer's dream debut continuing apace.
Though the weather forecast is mixed for the weekend, Joe Root's men look set to take a 2-1 lead in the four-match series.
The second part of that meteorological scenario is pretty decent for the batting side, of course, in terms of the diminished threat of the ball jagging around too excessively, yet it also lessens the prospect of bad light intervening if embattled South Africa do, somehow, drag things out to well into the last session. Next ball he fooled Faf du Plessis with a huge inswinger which, for the second time in the match, the South Africa captain thrust a pad at with bat aloft.
At such times, Cook's calming presence has often offered England succour - nigh on 12,000 Test runs amassed without excess, and as if oblivious to the tribulations around him.
He did appear to have better rhythm in his first spell from the Vauxhall End on Sunday morning, but the player who ripped through the Australians in Perth previous year is yet to make an appearance in this series.
His crucial partnerships in "difficult" conditions with Kagiso Rabada (30) and Morne Morkel (17) - which contributed 100 runs - helped the Proteas avoid the follow-on and an embarrassing first innings total.
'Your first few balls are always tricky.
- Watch As John McCain Saves Thousands of American Lives
- Trump Threatens to End Insurance Payments if No Healthcare Bill
- Tensions Rise as Russia Retaliates Against New Sanctions Bill
- Upset about failed ObamaCare votes, Trump calls on changes from Senate Republicans
- Conte: Kane would be my 'dream' striker
- Wenger tells Sanchez to respect his Arsenal contract
- Barca beat Real Madrid in Florida
- Mixed news for Sri Lanka on injury front
- Donald Trump threatens to end insurance payments if healthcare bill fails
- Ex-Navy doc vows free surgery for transgender military patients