Botes racked up 14 points for the Italian side as they condemned Eric Elwood's men to their fourth defeat of the league season.
Treviso's home form has been the most impressive part of the league newcomers' season so far, with Franco Smith's side having only succumbed to Cardiff at home in what has otherwise been an up and down campaign.
Connacht, who lost last weekend's interprovincial derby against Leinster, have been poor on their travels but took an early lead when Ray Ofisa offloaded to Adrian Flavin, who scored under the posts after a well-worked lineout in the fourth minute.
Ian Keatley converted to hand the visitors a 7-0 lead before Botes scored a penalty after Jamie Hagan was penalised at a scrum inside the Connacht half.
The South African added another three points with a quarter of an hour gone when referee Tim Hayes penalised Flavin for hands in the ruck.
Chris Burton missed a drop goal attempt two minutes later as the Italians started to take a grip of the game. Treviso scored their first try of the day after 24 minutes from Burton which Botes converted with ease.
Botes then put Treviso nine points ahead with a penalty kick after Connacht were caught offside close to their try-line.
A Keatley penalty brought Connacht within six points of the home side just before the break and the visitors looked determined to recapture the lead in the second period.
It was Treviso, however, who scored next with Ludovico Nitoglia breaking away to go over in the corner to extend the hosts' advantage to 11 points.
Elwood brought on Bernie Upton, Troy Nathan, Barry Fa'amausili and Frank Murphy as he looked to inspire a second half comeback from his charges.
The move looked to have paid off when Fionn Carr beat three tackles to offload to the supporting Murphy who found Niva Ta'auso on the left wing to ghost in beside the posts.
Keatley's conversion closed the gap to four points and Connacht looked to push home for the try that would give them only their third win of the current league campaign.
Michael Swift and Mike McCarthy threatened for Connacht but a late penalty from Botes - his fourth of the game - sealed the win for Treviso, while Connacht took away a losing bonus point but drop one place in the standings to tenth.
|Benetton Treviso Score Card|
|Connacht Rugby Score Card|