The Portsmouth defender wore a shirt with the number 100 emblazoned on the back as his side scored five goals in a single game for the first time in more than 250 internationals since returning to world football 18 years ago.
For a second successive match South Africa were awarded two generous penalties to help them on their way to victory in Polokwane.
The first came in the 11th minute and as a surprise to both teams.
Television replays showed a long-range shot from Siphiwe Tshabalala hit the shoulder of Guatemala defender Gustavo Cabrera but he was outside his penalty area.
Katlego Mphela converted to hand the home team the lead, doubled 15 minutes later by a strong volley from Reneilwe Letsholonyane after a persistent run by leftback Lucas Thwala provided a cross into the penalty area.
Following a strong run down the left wing, Mphela delivered a square ball for substitute Surprise Moriri to tap in in the 48th minute after coming on as one of three halftime changes.
A handball by Cabrera earned South Africa another penalty in the 56th minute which Mphela again tucked away.
Five minutes earlier, Guatemala had also been awarded a spot kick for an innocuous-looking handball but Guillermo Ramirez's effort was saved by Moeneeb Josephs. Bernard Parker got the fifth with eight minutes remaining.
The win stretched the team's unbeaten run to 11 matches since the return of Carlos Alberto Parreira as coach last November.
The World Cup hosts have a final warm-up in Pretoria against fellow finalists Denmark on Saturday.
South Africa play the opening match of the tournament against Mexico on June 11.
Thank you for reading 5 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.