A penalty score and a Richard Fussell effort also did the damage for the Welsh region while Ulster's points came from a Paddy Jackson score and another penalty try.
Ulster made a flying start to the game as they scored their first try after just three minutes. Fly-half Jackson exposed a gap in the Ospreys backline to go over and he easily converted the extras.
The home side had a chance to close the gap on six minutes but Biggar hit the left-hand post with his penalty and Jackson failed with an audacious attempt soon after.
Biggar didn't make the same mistake after 13 minutes when he reduced the deficit after infringement in the scrum by the visitors.
Ulster had the opportunity to extend the lead just two minutes later but Jackson missed a straightforward penalty.
Ill-discipline was costing the visitors and the welsh region were given two penalties in the space of three minutes, with the Ospreys fly-half kicking both to put his side ahead for the first time on the half-hour mark.
On 34 minutes, the eight-cap Welsh international made it 12-7 with his fourth successful penalty of the half.
Ospreys started the second period brightly and were rewarded with another three points on 48 minutes as they immediately benefited from their one-man advantage after Ulster's Robbie Diack was sin-binned.
A battle of attrition broke out in the Ulster half with a host of scrums eventually leading to a penalty try being awarded to the home side on 60 minutes.
The match was put beyond doubt just five minutes later with Biggar slotting home his sixth penalty of the match to make it 25-7.
With eight minutes left on the clock, winger Fussell took advantage of confusion in the Ulster defence to go over for a second Ospreys try.
The visitors were determined to end the game on a high and they were awarded a penalty try on 76 minutes after Ospreys dragged down a driving maul, with James McKinney converting the extras on his debut.
|Ospreys Score Card|
|Ulster Rugby Score Card|