South Africa beat Sri Lanka by 41 runs as decided through the Duckworth-Lewis method.
The Proteas will be eyeing a series whitewash, as they go to the Mother City leading 4-0 after the disappointment of the historic Test series defeat suffered at the hands of the same opponents in February.
The two teams are also set to square off in a three-match T20 worldwide series beginning at Newlands on Tuesday.
Markram was the night's big victor. Saturday's innings seems certain to ensure that he is part of South Africa's squad for the Cricket World Cup later this year.
The focus for the next few months will be in the 50-over format, and a few players from the hosts are yet to ink their names in the 15-man touring party that will represent South Africa in England in May.
It was another poor performance by Sri Lanka despite a half-century by Kusal Mendis, who made 56, and an adventurous partnership of 61 off 53 balls between Priyamal Perera and Isuru Udana. He faced 84 balls and hit three fours.
Sri Lanka have made two changes of their own, leaving allrounder Kamindu Mendis out for batsman Angelo Perera, while fast bowler Kasun Rajitha sits out for spinner Akila Dananjaya. It was the first failure of the series for De Kock and ended a sequence of five successive scores of 50 or more by the left-hander. Pacer Anrich Nortje took 2 for 35.South Africa were 135 for 2 in 28 overs with Markram and Rassie van der Dussen (28*) in the middle when bad light stopped play. Markram carried on after his captain fell to take South Africa home.