Resuming the morning on 32-1 chasing an unrealistic target of 537, Bosch made sure the Proteas got off to the perfect start getting the wicket of Nick Welch for a duck with the first ball of the day.
The seamer, who scored and unbeaten century in South Africa's first innings total of 418-9 declared, then dismissed the dangerous Sean Williams for 26.
Codi Yusuf then came into the attack a made a double breakthrough, the debutant seamer dismissing Wessly Madhevere and Tafadzwa Tsiga to leave the home side tattering on 82-6.
Zimbabwe captain Craig Ervine and number eight Wellington Masakadza then put up some resistance with a partnership of 83 for the seventh wicket.
Masakadza went on to score his maiden half-century in Test cricket but it was unlucky for Ervine as Bosch removed the home skipper for 49 after the lunch interval.
The paceman then completed his five-wicket haul in just his second Test after rattling the stumps of number nine Vincent Masekesa and finished with figures of 5-43 in 12 overs.
Blessing Muzarabani hit two sixes and four fours to be unbeaten on 32 off 29 balls but the match came to an end when leg-spinner Dewald Brevis picked up his first Test wicket as wicketkeeper Kyle Verreynne stumped last man Tanaka Chivanga for the hosts to be 208 all out.
The Proteas now take a 1-0 lead in the two-match series with the second game again being played at the Queen's Sports Club in Bulawayo from Sunday.