South Africa 286 and 351 for 5 (Cook 117, Elgar 52) lead Sri Lanka 205 (De Silva 43, Philander 5-45) by 432 runs
Scorecard and ball-by-ball details
Stephen Cook's third Test hundred moved South Africa into a dominant position on a third day of rain delays and rapid scoring in Port Elizabeth. Sri Lanka caused a brief flutter with four wickets for 56 runs, but that only came after South Africa had moved to 221 for 1. At stumps, South Africa were 351 for 5, their lead 432 with two days remaining.
For most of the day, the only force that seemed capable of halting South Africa's march was the weather: Bad light and rain halted play twice, either side of an early lunch break, for roughly an hour cumulatively. Then, belatedly, Sri Lanka's bowlers began to find some success.
Nuwan Pradeep dismissed Amla with the last ball before tea, making him the 10,000th lbw victim in Test history. Dushmantha Chameera got Cook to nick behind in the sixth over after tea, before Dhananjaya de Silva, bowling his offbreaks from around the wicket to both right- and left-hand batsmen, began turning the ball appreciably. He got JP Duminy to edge to slip, and then had Temba Bavuma caught at short leg - Bavuma walked off without reviewing after being given out, despite replays suggesting there was no bat involved.
Rangana Herath could have had Quinton de Kock three overs later, but Dinesh Chandimal, possibly unsighted by the batsman as the ball spun out of the rough and between bat and pad, missed the stumping. De Kock and Faf du Plessis went on to add an unbroken 74 for the sixth wicket, at 4.82 per over, reinforcing South Africa's hold on the Test match.
South Africa dominated right from the start of play, taking only 7.5 overs to wrap up Sri Lanka's lower order, with Vernon Philander completing his 11th Test-match five-for, and gain an 81-run first-innings lead. Then Cook, courtesy century stands for the first and second wicket with Dean Elgar and Hashim Amla, ensured Sri Lanka remained on the mat.
Amla fell two short of a half-century, Pradeep trapping him on the shuffle, spearing one full and straight the ball after that shuffle had brought the batsman a cheeky four, a leg glance off an off-stump delivery. By then, Amla had batted as fluently as he has done at any point this season, delighted his fans with some vintage strokeplay including scorching drives through the covers and down the ground, his balance and timing inch-perfect.
After two days dominated by seamers, Sri Lanka may have hoped for continuing assistance from the pitch, but after some early help for the new ball - Cook and Elgar sent three edges streaking through gaps in the slip cordon in the first four overs - conditions seemed to ease out considerably. Given South Africa's lead, Sri Lanka couldn't attack for too long, and the innings eventually settled into a pattern of easily available runs against defensive fields.
Elgar was the dominant opening partner before lunch - which was taken half an hour early thanks to bad light and later rain - scoring 26 to Cook's 12 and hitting three fours including a muscular swat over midwicket when Suranga Lakmal dropped marginally short and a crisply timed back-foot drive down the ground off Angelo Mathews.
Cook caught up when play resumed, with three fours in two overs - not all of them entirely controlled - when the seamers began bowling short. With singles now plentifully available against the deep-set fields, Cook's strike rate climbed, and he reached fifty in style, punching Pradeep through the covers to bring up the landmark and slashing the next one backward of point for another four.
Elgar soon joined him in the 50s before falling to a miscued pull off Suranga Lakmal. By then, Cook and Elgar had brought up their second century partnership of the match. It was only the tenth time in Test history that an opening pair had achieved this feat.
South Africa began scoring even more freely with Amla at the crease: the second-wicket pair scored at 5.57 while the openers had gone at 3.60. Cook, who took 81 balls to score his first fifty, scored his second in 71 balls, as Sri Lanka's bowlers went through the motions. Cook went from 95 to 99 with the shot of his innings, a straight punch off the front foot against Chameera, before getting to his hundred the next ball with a trademark nurdle into the leg side for two.
South Africa's day began in the best way possible. Philander struck with his very first ball, shaping it away from the fourth-stump channel to induce a poke and an edge from Dhananjaya de Silva, who, on 43 overnight, had held Sri Lanka's hopes of narrowing South Africa's lead to manageable proportions. Five balls later, Lakmal realised he wasn't quite to the pitch of a fullish ball to drive, checked his shot, and popped a low catch to mid-on, giving Philander his fifth wicket.
Philander and Kyle Abbott beat the edges of Chameera and Pradeep frequently, but Sri Lanka's Nos. 9 and 11 managed to stretch their total by 20 runs along the way. There were a couple of audacious shots as well - Pradeep punched Abbott off the back foot to the point boundary, and Chameera hit Philander for a straight-bat scoop over mid-on. Eventually, having just got past the 50-ball mark, Chameera jabbed at an away-swinger from Abbott and nicked to first slip.
Karthik Krishnaswamy is a senior sub-editor at ESPNcricinfo