Shaun Marsh marked his recall with 122 not out to lead Australia to 297-4 on day one of the first Test against South Africa at Centurion.