Ulster lost their second successive Celtic League home match as leaders the Ospreys maintained their 100 per cent record in the competition.
Ulster (14) 24:
Tries: Cunningham, Maggs, Feather.
Con: Humphreys 3.
Ospreys (0) 37:
Tries: S Williams, Bishop, Tiueti, Parker.
Con: Henson 4.
Pens: Henson 2.
Drop goals: Henson 1.
Ulster led 14-0 at half-time with David Humphreys converting tries from Bryn Cunningham and Kevin Maggs.
The Ospreys replied with 21 unanswered points and although Feather crossed the Ospreys line, the Welsh team triumphed.
Shane Williams, David Bishop, Dave Tiueti and Sonny Parker grabbed tries and Gavin Henson kicked 17 points.
Ulster opened the scoring against the run of play when a delicate chip from David Humphreys opened up the Ospreys defence and enabled Andy Maxwell to put Bryn Cunningham away for a touchdown.
Humphreys and Gavin Henson then missed penalties in a scrappy period of play before Ulster struck again three minutes after the half hour through another
moment of opportunism.
The Ulster fly-half, under pressure from a poor pass from Kevin Maggs, released Roger Wilson deep in Ulster territory and the number eight saw an unlikely gap and
Wilson was hauled down short of the Ospreys line but Ulster were there in numbers to recycle the ball and Maggs smashed through for the try which was converted again by Humphreys.
Crucially, the home side were then reduced to 14 men before the break after Neil Best was sin-binned a
minute into injury-time.
Kevin Maggs scored one of Ulster's two first half tries
The Ospreys hit the ground running on the restart and after 30 seconds of play Shane Williams skated round some weak Ulster tackling to open the visitors'
Six minutes later David Bishop scored the Ospreys second try from an Ospreys scrum in Ulster's 22.
Henson added both conversions to tie the scores
while Ulster still had Neil Best in the bin.
Ulster, restored to full strength, again conceded points when a spectacular Ospreys intercept and attack swept down the field.
Shane Williams was involved twice in the 49th minute move and gave the scoring pass to Dave Tieuti.
Ospreys led 21-14 at this stage but just after the hour Ulster levelled after a Humphreys chip for the corner was collected by replacement Campbell Feather.
However, the visitors responded with a Henson penalty from inside his own half before
Sonny Parker sliced through on 68 minutes for the Ospreys' bonus try.
Henson's fourth conversion gave Ospreys a 10-point cushion at 31-21.
Humphreys closed the gap with a 70th-minute penalty but a late Henson penalty and a drop goal gave Ospreys their deserved result.
Ulster: B Cunningham; T Bowe; Jonny Bell; K Maggs, A Maxwell; D Humphreys, Neil Doak; S Best, P Shields, R Moore, M Mustchin, M McCullough, A Ward (capt), N Best, R Wilson.
Replacements: N Brady, R McCormack, R Frost, C Feather, K Campbell, P Wallace, T Howe.
Ospreys: A Durston; D Tiueti, D Bishop, S Parker, S Williams; G Henson, J Spice; P James, B Williams (capt), A Jones, A Newman, L Bateman, A Lloyd, S Tandy, R Jones.
Replacements: A Williams, R Mustoe, A Millward, M Davies, L Tait, J Bater, R Pugh.
Referee: David Changleng (Scotland)