Fleetwood carded a closing 67 on a weather-affected final day to finish 11 under par and a shot ahead of New Zealand's Ryan Fox, who bogeyed the 72nd hole after mis-hitting his tee shot and failing to reach the fairway.
India's Shubhankar Sharma had shared the lead with playing partners Fleetwood and Fox after 15 holes but bogeyed the 16th and 17th and had to settle for third place on nine under.
Fleetwood defeated Sweden's Marcus Kinhult at the first extra hole of a play-off at the Gary Player Country Club in November 2019 to claim his fifth DP World Tour title.
The tournament was cancelled in 2020 and 2021 due to the Covid-19 pandemic and the Ryder Cup star had surprisingly failed to follow up his success at Sun City with any further victories until this week.
"One of my biggest goals for a while has been to win with my whole family here," Fleetwood, who revealed he had been "very touch and go" to play on Thursday due to illness, told Sky Sports.
"Frankie (his son) is always saying I never win anything, he brings medals home from school and says this is because you never win at golf. I wanted to win with them here for such a long time, they came, and now they disappear!
"They're at the airport because the kids have exams tomorrow so they've got to get to school.
"It's been a great week. I already had so many amazing memories from this place and felt like I had a great connection to it so this has added to that. It was a lovely feeling coming down that back nine with a chance (to win) and battling it out."
Fleetwood, who began the final round three shots off the lead held by Rasmus Hojgaard, birdied the second, fifth and sixth to cut his deficit to a single shot before play was suspended due to lightning in the area.
Play eventually resumed after a delay of almost three-and-a-half hours and, as Hojgaard dropped four shots in the space of three holes, Fleetwood, Fox and Sharma moved to the head of affairs.
Fleetwood bogeyed the 12th but dramatically holed out from a bunker on the par-five 14th for an unlikely eagle before Fox and Sharma made birdie to make it a three-way tie on 11 under.
Sharma fell out of the lead with costly bogeys on the 16th and 17th and Fleetwood almost holed from 50 feet on the 18th for a winning birdie before Fox failed to save par from the back of the green.
Fleetwood fought back tears on the 18th green before paying tribute to the on-site doctor for getting him through the week.
"The doctor here has been amazing," he said. "I just gave his little son the winning golf ball because without him there was no chance on Thursday I would have played.
"You weren't sure what the weather was going to do so I just thought if I can keep playing you never know what's going to happen at the end of the week."
Fox would have overhauled Rory McIlroy at the top of the DP World Tour rankings ahead of the season-ending tournament in Dubai with his third win of the season but at least closed to within 128 points of the world number one.
"I played great and didn't miss a shot all day until the 18th," he said after a closing 68. "I'd certainly like the chance to play that hole again.
"I'm still really happy. I don't think I've finished inside the top 50 here in three starts so if you'd given me second at the start of the week and closed the gap by a decent amount on Rory I'd have taken it."