Opening batsman Ryan Rickelton played a perfect knock to score his first century, followed by a sharp performance from the bowlers, as South Africa cruised to a commanding 107-run victory over Afghanistan to begin their Champions Trophy journey on Friday.