Boucher, dropped six times, raced to his first ODI century off 44 balls and went on to an unbeaten 147 off 68, with 10 sixes, as the hosts posted 418-5. Opener Loots Bosman (88) and Alviro Petersen (80) also enjoyed themselves.
Terry Duffin's 88 boosted Zimbabwe's total but they could only make 247-4 and lost the match by 171 runs.
"I've been striking the ball a lot better than in the past, and it's a matter of just getting the runs behind your name," said Boucher. "It was one of those days where whatever you swing at hits the middle of the bat and whatever is in the air and goes to hand goes down. "The boys in the dressing room said I used up all my luck for the season."
Captain Kallis weighed in with 50 only to be caught out off the bowling of Zimbabwean skipper Prosper Utseya. Vusi Sibanda's dismissal off the bowling of Andre Nel got Zimbabwe off to the worst possible start, but Duffin and Chamu Chibhabha put on a decent score for the second wicket.
Chibhabha was caught behind by Boucher for 46, bringing Hamilton Masakadza to the wicket. He made 53 from 53 balls before being out in the same fashion as Chibhabha.
Eight balls later Duffin was out lbw to Nel, leaving Brendan Taylor and Stuart Matsikenyeri with an unbroken partnership of 35 at the close.
Boucher's century in Potchefstroom is second in the all-time list behind Shahid Afridi's 37-ball effort for Pakistan against Sri Lanka in Nairobi in 1996. The 29-year-old's knock was his country's fastest - beating the 79 balls Herschelle Gibbs needed against Australia in March - and helped South Africa to their second-highest One-day total.
Their highest total was the 438-9 they made to beat Australia in Johannesburg earlier this year