Waugh shared an undefeated 107-run stand with twin brother Steve as Australia scored 222 for three to win with five overs to spare.
Earlier, some outstanding seam bowling had helped the visitors restrict South Africa to 221 to eight after captain Mark Taylor had won the toss and put them in. Mark Waugh's 125-ball innings, containing three sixes and eight fours, anchored Australia's victory chase after Taylor had failed again, struggling for almost an hour and facing 44 balls for his 17 runs.
After losing Taylor on 47, Mark Waugh and the in-form Stuart Law (33) added 68 for the second wicket. Pat Symcox gave the Australians a minor scare, removing Law and Shane Warne (0) off successive deliveries. But the Waughs ensured South Africa's first home defeat in 14 one-day internationals.
Jacques Kallis (87) resurrected the South African innings earlier in the day, sharing a face-saving fourth-wicket partnership of 104 with Jonty Rhodes (57) after South Africa had been reduced to 16 for three.
Medium paceman Adam Dale, playing only his second one-day international, ripped through the top order, picking up three for five in 24 balls.
South Africa, having recovered to 181 for four by the 45th over, were checked by Jason Gillespie in his ninth over. With two slower deliveries he accounted for Hansie Cronje (31) and Kallis in the space three balls.