An entertaining display saw Ospreys dominate the game, scoring tries through wing Hanno Dirksen and Dan Biggar, who added an additional 11 points from the tee.
Ulster were indebted to late tries by replacement Rob Herring and former Ospreys winger Tommy Bowe, with Ian Humphreys providing 10 points with the boot.
An impressive defensive drive after only two minutes involving Alun Wyn Jones earned Ospreys a penalty which the ever-reliable Biggar kicked from just outside the 22. Humphreys found his range with a 45 metre penalty to level the scored on 15 minutes.
However, Ospreys were back in front only three minutes later through a fine try begun by full-back Dan Evans from a line-out and finished by Biggar with Alun Wyn Jones and Marc Thomas playing important part. Biggar also converted to give Ospreys a 10-3 lead.
Ospreys scored a second try three minutes from the interval. A poor Humphreys clearance produced a concerted Ospreys attack which saw lock Rynier Bernado put Webb over for Biggar to add the extras.
There was controversy just before half-time when referee Neil Paterson awarded Ulster a try only to rule it out on the intervention of the TV match official Tim Hayes and assistant referee Nigel Owens.
They pointed out there was a double knock-on in the lead up to Humphreys going over. The disallowed try meant Ospreys led 17-3 at the break.
Ulster, who lost Ruan Pienaar to a knee injury at half-time, scored first after the break through a 44th minute penalty through Humphreys.
But the Ospreys scored a third try and Webb’s second on 49 minutes after good work by Josh Matavesi, Tipuric and Eli Walker, who appeared to knock-on. Biggar put over his third conversion to give the home side a 24-6 lead.
That became 31-6 seven minutes later as Dirksen powered over from a scrum for the bonus point to ensure Ospreys went top. Ulster grabbed a try back through Herring on the hour mark and Bowe eight minutes later as the visitors closed the gap to nine points but could not muster a losing bonus point.
Ospreys scorers: Tries: Biggar, Webb 2, Dirkson. Cons: Biggar 4. Pens: Biggar.
OSPREYS: D. Evans, Dirkson, Beck, Matavesi, Walker, Biggar, Webb, M. Thomas, Baldwin, Arhip, Bernardo, A. Jones, King, Tipuric, Ardron.
Replacements: Roberts for Webb (57), G. Thomas for M. Thomas (64), Parry for Baldwin (58), Lydiate for Bernardo (50). Not Used: Suter, Lewis, Davies, Bishop.
Ulster scorers: Tries: Herring, Bowe. Cons: Humphreys 2. Pens: Humphreys 2.
ULSTER: Ludik, Bowe, Cave, L. Marshall, Allen, Humphreys, Pienaar, Warwick, Best, Fitzpatrick, Tuohy, van der Merwe, Diack, C. Ross, Wilson.
Replacements: Olding for Cave (64), Nelson for L. Marshall (63), P. Marshall for Pienaar (41), Black for Warwick (69), Herring for Best (58), B. Ross for Fitzpatrick (69), Reidy for Diack (50).
Referee: Neil Paterson (Scotland).