The momentum of the game swung to and fro for 80 minutes but in the end it was the home team who hung on to out-score their international visitors by five tries to four. Both sides were desperate for a victory after going winless through the first two rounds of the competition.
SWD Eagles were on the scoreboard in a flash when scrumhalf Dillin Snel sped over for the opening try in the second minute. Flyhalf Gerhard Nortier succeeded with the conversion.
The Zimbabweans were feeling some early heat and six minutes later, SWD right wing Shario Rosenkrantz rounded off some enterprising play from his fellow backs as the home team took a 12-0 lead.
Then, against the run of play, Zimbabwe Academy's James Chieza scored a try in the 14th minute as he burst through the midfield with blistering pace and power. Flyhalf Jeremiah Jaravaza slotted the conversion.
But SWD restored their 12-point advantage when burly centre Marquit September bundled his way over from a quick-tap penalty and Nortier added the extra two points.
Making good use of the strong wind at his back, Jaravaza narrowed the gap to six when kicked two penalties soon after the restart.
No 8 Aiden Burnett then scored Zimbabwe Academy's second try to make it a one point game with 17 minutes remaining.
But it was September who timed his run through the Zimbabwe Academy defence perfectly to score his second five-pointer and give SWD some breathing room. Replacement Divan Nel made it 26-18 with the conversion.
Zimbabwe replacement George Saungweme made sure it would be a dramatic finish when he scored with five minutes to play.
But Lwando Mabenga made sure of the match points for SWD with his team's fifth try in the 77th minute although Zimbabwe prop did score a consolation try on the final whistle.
SWD Eagles - Tries: Dillin Snel, Sahrio Rosenkrantz, Marquit September (2), Lwando Mabenga; Conversions: Gerhard Nortier (2), Divan Nel.
Zimbabwe Academy - Tries: James Chieza, Aiden Burnett, George Saungweme, Cleopas Kundiona; Conversions: Jeremiah Jaravaza, Kudakwashe Mudariki; Penalties: Jeremiah Jaravaza (2).