A header by Sibusiso Zuma and a deflected shot by Bryce Moon handed South Africa their goals, while Jomo Cosmos’ Dipsy Selolwane scored for the visitors.
It was all one-way traffic in the first half, with Carlos Alberto Parreira’s men dominating from the offset.
Zuma should have handed the hosts the lead in as early as the sixth minute when he shot straight at visiting goalkeeper Modiri Marumo after latching onto a superb pass by Steven Pienaar.
The Bafana striker wasted another chance in the 23rd minute, again sending his effort into the arms of Marumo.
Botswana’s Moemedi Moathlaping almost netted an own goal four minutes later when his attempted clearance from a Siphiwe Tshabalala corner struck the crossbar.
Zuma sent two more strikes straight at Marumo in the 34th and 39th minutes, before Bafana Bafana went ahead in the 41st minute, when Pienaar’s cross pass poorly dealt with by the Zebras’ defence, culminating in Moon’s shot being deflected into goal.
The score remained 1-0 at the break.
The visitors produced a better performance in the second half and duly went ahead in the 53rd minute when Moathlaping headed home at the far post from a good cross by Selolwane.
The former Santos striker received his marching orders in the 63rd minute for a rash challenge on Aaron Mokoena, which lead to the Bafana skipper being stretchered off and the Zebras captain receiving a straight red card.
The hosts imposed themselves on the game due to their one-man advantage and deservedly went ahead in the 81st minute when Zuma headed home at the far post from Lerato Chabangu’s cross from the right.
But matters got worse for the visitors, who had Boitumelo Mafoko sent off in the 90th minute for a two-footed challenge on Moon.
Although Moon was able to finish the game, Parreira must be concerned over the ankle injury sustained by his captain Mokoena. Hopefully, the Blackburn Rovers man will be able to shake off the injury in time for Bafana Bafana’s Nations Cup opener against Angola’s Palancas Negras next Wednesday.
Bafana line-up vs Botswana: Moeneeb Josephs – Bryce Moon, Benson Mhlongo, Nasief Morris, Brett Evans – Steven Pienaar, Aaron Mokoena, Teko Modise, Siphiwe Tshabalala – Surprise Moriri – Sibusiso Zuma.