The Ospreys ended Ulster's unbeaten home record in this season's Pro12 by earning a deserved win at Ravenhill.
With both sides under-strength, the Ospreys bossed first-half possession but three Ruan Pienaar penalties gave Ulster a 9-6 lead at the break.
Matthew Morgan's third Ospreys penalty levelled the contest before a Stuart Olding penalty restored Ulster's lead.
However, a breakaway try by Ospreys prop Ryan Bevington proved the crucial score as the champions took victory.
Ospreys skipper Kahn Fotuali'i produced a classy display to edge his scrum-half duel with Pienaar and a disappointing night for the Springbok was completed as he was forced off midway by an apparent shoulder injury.
Ulster's line-out misfired badly throughout the contest with hooker Rob Herring struggling to find his jumpers on several occasions.
Both sides were badly hit by international commitments and injuries although Ulster did welcome back Andrew Trimble and fit-again skipper Johann Muller with James King and Ryan Bevington starting for the Ospreys after being released from the Wales squad.
Ulster coach Mark Anscombe handed a first start to Ireland Under-20 fly-half Olding while wing Ben John made his debut for the visitors.
Pienaar did kick Ulster into the lead with a penalty from 40 metres in the fifth minute but Morgan quickly had the visitors on terms as the Ospreys began to dominate possession.
Against the run of play, Pienaar kicked Ulster into the lead against in the 15th minute with a 50-metre penalty after the Ospreys had been caught offside.
However, the visitors were quickly back in the home team's 22 after Ulster had been penalised for a couple of scrum indiscretions and the pressure yielded a second successful penalty for Morgan.
The Ospreys continued to produce pressure but failed to capitalise on a couple of threatening positions with Trimble bravely gathering to avert the danger after Richard Fussell had opted to kick instead of availing of an overlap.
Somehow, Ulster were in the lead again on 33 minutes as Paddy Wallace's half-break past Joe Bearman into the Ospreys 22 set up a routine penalty for Pienaar and the home team maintained that advantage to the interval.
Shortly after the restart, Wales and Lions lock Alun Wyn Jones came on for his first action since being injured against Australia in November.
Morgan's third successful penalty levelled the contest at 9-9 in the 54th minute as the Ospreys continued to have the greater share of possession.
An even bigger concern for Ulster was losing Pienaar because of a suspected shoulder injury although the introduction of livewire replacement Paul Marshall did see Ulster producing a period of sustained pressure for the first time in the match.
With Pienaar off, Olding kicked Ulster back into the lead on 65 minutes but it proved a short-lived advantage as prop Bevington ran in a sensational breakaway try after initial breaks by Jonathan Spratt and Kahn Fotuali'i.
Morgan added the conversion to increase the champions' lead to 16-12 who were down to 14 men at the time of their try after after Morgan Allen had been sin-binned moments earlier..
Ulster responded with some immediate pressure but the Ospreys produced some heroic defending deep in their own 22 and then controlled the final 10 minutes of play to secure their merited victory.
Ulster: R Andrew; A Trimble, L Marshall, P Wallace, M Allen; S Olding, R Pienaar; C Black, R Herring, T Court; J Muller (capt), L Stevenson; M McComish, A Birch, R Diack.
Replacements: D Cave for Wallace 44, C Cochrane for Allen 76, P Marshall for Pienaar 58, N Annett for Herring 58, D Tuohy for Muller 58.
Not Used: R Lutton, A Warwick, N McComb.
Ospreys: R Fussell; T Habberfield, T Isaacs, J Spratt, B John; M Morgan, K Fotuali'i (capt); R Bevington, S Baldwin, C Griffiths, L Peers, J King, M Allen, S Lewis, J Bearman
Replacements: D Jones for Bevington 75, A Wyn Jones for Peers 49.
Not Used: M Dwyer, D Arhip, I Gough, R Ellis, R Jones, J Murphy.
Referee: M Mitrea (FIR)