Calcavecchia had five birdies Saturday to finish 9 under in three rounds, beating overnight leader Langer (71) and Woosnam (70) in the race for the $250,000 first prize for seniors.
The American, who won the 1989 British Open, finished second to Langer in the main tournament at Sun City in 1991.
Langer let a one-shot overnight lead over Woosnam -- and three-shot advantage over Calcavecchia -- slip with three bogeys alongside four birdies at Gary Player Country Club.
Langer and Woosnam both missed birdie putts on No. 18 that would have forced a playoff.