Man of the match, Sam Davies, scored 17 points as the Ospreys made it three wins from four to move into second spot in the early Guinness PRO14 Conference A table.
A Dan Evans try shortly before the break was all that separated the teams at half-time before a flying start to the second half saw Justin Tipuric extend lead before he was sent to the bin for 10 minutes.
As Benetton pushed, the Ospreys showed great resolve in defence to deny their opponents a way back in before a Davies dummy rounded off a great team effort to secure the win.
In a low key opening period, Antonio Rizzi had an early chance to open the scoring but the Italian fly-half never looked like having the distance or direction from 40m out after Scott Otten was penalised on the ground.
The same player had another go five minutes later, Tom Botha penalised this time, but it was a similar outcome from a similar distance, Rizzi’s kick always drifting wide.
Sam Davies was more successful at the other end, his 40m kick going over off the left upright after a side entry to the ruck by Federico Ruzza.
Buoyed by that score the Ospreys looked to take control and the first try should have come towards the end of the first quarter, Luke Morgan doing superbly to beat three men stepping off the wing only for his inside ball to Aled Davies to go to ground when the scrum half would have been left with a canter under the posts.
The visitors leveled in the 23rd minute, a spell of pressure inside the 22 ending with a simple three points for Rizzi from in front of the posts.
Clear opportunities for either side were at a premium as it became something of an arm wrestle, but it was the Ospreys who made the breakthrough seven minutes from the break through a well worked move from a lineout on the right.
Joe Thomas broke the defensive line with a nice angle before finding Evans on his shoulder, the fullback beating the last defender to score his first of the season, Davies converting.
HALF-TIME: OSPREYS 10-3 BENETTON RUGBY
The Ospreys came out all guns blazing from the restart and thought they’d grabbed a second try inside 90 seconds, Morgan doing exceptional work up the left to finish in the corner but the decision was referred upstairs, TMO Tim Hayes calling a knock-on against Evans in the build up.
However, the try did arrive just a couple of minutes later, Tipuric with a great break in midfield, galloping through the middle before chipping over the cover to chase. It was George North who got there first but was unable to collect cleanly as Luca Sperandio hit him high but the skipper was alert, gathering the loose ball and sliding over to score.
Again it went to the TMO and after much deliberation the try was awarded, with a yellow card also shown to the Treviso full back for his high tackle. Davies converted and the Ospreys now held a 14-point advantage.
The player numbers were leveled just a couple of minutes later, Tipuric sent to the bin for bringing down a Benetton maul on the line.
With the extra man in the pack, the Italians scented blood and the try duly arrived just a minute later, via three separate advantages, Braam Steyn eventually burrowing over from close range. Mckinley converted.
As Benetton returned to the full complement, Sam Davies took the Ospreys 10 clear again after great scavenging work on the ground by North to win the penalty close to halfway.
As the clock moved towards the final 10 minutes, it took a huge defensive shift to keep the visitors out, Benetton pressing deep inside the 22 without reward, great work by Otten to win a penalty.
That effort was rewarded in style a couple of minutes later when Davies rounded off a sharp team effort, his show and go beating the defence to score after a move sparked by a barnstorming North charge that took out three defenders. The conversion from Davies meant the Ospreys led by 17 inside the final eight minutes.
With the win secure, the Ospreys played out the closing stages to keep their unbeaten start at the Liberty going.