The Ospreys ended Ulster's unbeaten run as they continued their own with a workmanlike triumph at Liberty Stadium.
Ulster struck first through fly-half Paddy Jackson's well-taken try, which he also converted.
But Biggar kicked four first-half penalties to give the hosts the lead at the break.
Both sides earned second-half penalty tries, but Biggar's boot and a Richard Fussell try, converted by replacement Matthew Morgan ensured a home win.
The hosts fell behind to Jackson's excellent try, the fly-half gliding through a gap after four minutes to score.
Jackson added the conversion, but then saw opposite number Biggar chip away at the lead in the 13th and 27th minutes.
The second of those penalties came while home hooker Richard Hibbard was in the sin-bin following a minor flare up at a scrum.
And Biggar put his side into the lead for the first time with a penalty after 30 minutes and added a fourth first-half goal to give Ospreys a 12-7 half-time cushion.
After visiting number eight Robbie Diack was sin-binned for illegally killing an Osprey attack, Bigger kicked his fifth penalty.
Ospreys were clearly unhappy with some of the officiating, but made their point at the break and earned a reward in the 60th minute.
Irish referee Dudley Phillips awarded a penalty try after a series of Ulster scrum indiscretions.
Biggar converted, adding a penalty to ensure the hosts were in no danger of losing.
Home efforts at the scrum also helped 31-year-old Welsh international prop Duncan Jones take the man-of-the-match award.
Wing Richard Fussell added to Ulster's misery by pouncing on a mistake on Ulster's 22 and breaking free to score before Biggar's replacement Morgan added the extra points.
Ulster battled to earn a penalty try when Ospreys' illicit defence was punished as the visitors drove over their line.
James McKinney - on as a replacement for Jackson - converted the score two minutes after he had entered the fray, but it was too little, too late for the visitors.
Ospreys: B Davies; Fussell, Isaacs, Bishop, Dirksen; Biggar, Webb; D Jones, Hibbard, Jarvis, Gough, Goode, Smith, Thomas, Tipuric (capt).
Replacements: Phillips for B. Davies (73), Morgan for Biggar (67), Parker for Webb (73), Griffiths for D Jones (74), M Davies for Hibbard (66), Rees for Jarvis (52), King for Goode (41), Bearman for Smith (62).
Ulster: Payne; Gilroy, Spence, L Marshall, Whitten; Jackson, P Marshall; Fitzpatrick, Kyriacou, Cronin, Stevenson, Tuohy, Wannenburg, Henry, Diack.
Replacements: D'Arcy for Payne (53), McKinney for Jackson (76), McIlroy for P Marshall (67), McAllister for Fitzpatrick (52), Brady for Kyriacou (56), Macklin for Tuohy (66), Barker for Wannenburg (66), Faloon for Diack (58).
Referee: Dudley Phillips (RFU).
Assistant Referees: Sean Brickell,Martyn Lewis (both WRU)
Citing Commissioner: Dennis Jones (WRU)
TMO: Huw Lewis (WRU)