The batting was the basis of South Africa's dominance, but the bowling was disciplined as well, and the fielding was not short of sublime. Sri Lanka's openers fell to two spectacular catches - du Plessis leaping, right arm outstretched above head, to end Niroshan Dickwella's promising stay, and AB de Villiers sprinting back from mid-off to snaffle a tough overhead chance soon after.
JP Duminy's rapid run out of Asela Gunaratne rounded off the fielding performance, while Imran Tahir and co. refused to allow the opposition to ever get a feel for the chase. They were all out for 186 in the 38th over. Eight batsmen got into double figures but the highest score of the innings was Dinesh Chandimal's 36.
Sri Lanka's mistakes would be familiar to recent followers of their cricket. The chance to have South Africa 118 for 5 was spurned when du Plessis was dropped on 63 - that fifth wicket partnership going on to account for 117 and form the thorax of South Africa's innings. The bowling lacked penetration through the death overs - which has often been the case since Lasith Malinga's decline - and the batsmen produced a string of briefly encouraging but largely inconsequential innings. There was not a fifty partnership in the response.
It is also possible Sri Lanka erred in bowling first on what appeared a good batting track ahead of the match. Perhaps they might have reasoned that their only wins on tour - in the T20s - had come when chasing a score.
Du Plessis came to the crease in the fourth over of South Africa's innings, and was both secure and productive, seeing his team through early wobbles when Sri Lanka's beefed-up spin attack appeared ready to take control of the match.
It was the frill-free back foot punch that eventually took him to triple figures, but it had defined the early stages of du Plessis' innings as well, as he leant back to punish short deliveries from the spinners through the cover region - though plenty of runs came square of the leg side as well. In between the boundaries were a non-stop tick-tock of singles and twos. Where other batsmen in the top order were inert against spin early in their innings, du Plessis always seemed in control of the pace of his progress.
His sole mistake came on 63: reaching for a flighted Lakshan Sandakan stock ball, du Plessis sent a low edge to Dhananjaya de Silva at slip. The chance was grassed, and the partnership went on to flourish for more than 22 overs. Sandakan would have a half-chance off Miller go down as well, and seemed, in general, the best bowler in the attack - his big turn causing batsmen issues, even if his lack of control allowed them to get off strike easily as well.
While du Plessis' innings rarely waivered from a strike rate of around 90, Miller advanced more in spurts through the first half of his knock. Happy at first to work the ball around with his partner, he ventured big shots whenever his scoring rate began to lag: it was consecutive straight sixes of Dhananjaya de Silva that sped him from 39 off 52 balls to 51 off 54.
A diet of runs into the outfield sustained him after reaching that half century, but it wasn't long before the death overs coaxed him into a destructive mood again. He cracked Suranga Lakmal to the deep cover fence in the 44th over, smoked Kulasekara over long-on two overs later, then having completed his fourth ODI hundred off the first ball of the final over, exploded spectacularly in the last five balls to launch South Africa beyond 300. He hit two straight sixes off two wayward Kulasekara deliveries - the second of which sent the ball bouncing down the road - and finished the innings with a four behind square on the offside to boot. His last 18 balls yielded three sixes and 36 runs.
Briefly, there was hope for the Sri Lanka chase. Dickwella hit enterprising boundaries off the South Africa seamers, and Upul Tharanga - having re-promoted himself to the top of the innings - progressed smartly despite suffering two blows to the helmet. But when both were out to excellent catches off the bowling of Wayne Parnell, the run rate climbed, and wickets began to fall with regularity.
Kusal Mendis chipped an Andile Phehlukwayo ball to short cover, Dhananjaya de Silva was stumped after being dragged out of his crease by Tahir, Asela Gunaratne was run out for the second time in as many matches, and Chandimal was caught behind driving ambitiously as well. Beyond the 45-run opening stand, there was really no meaningful fight from the Sri Lanka batsmen, though they did at least go down swinging, rather than in a meek heap. At Chandimal's dismissal, the score was 132 for 6 in the 26th over, and hopes of victory were all but extinguished.
South Africa's bowlers shared the wickets around. Tahir and Parnell took two apiece, and Duminy had two lower middle-order batsmen holing out off his bowling as well. Rabada, Morris and Phehlukwayo all finished with one scalp.