Ulster climbed to second place in the Guinness Pro12 table as they halted leaders Ospreys' 100 per cent start to the campaign.
A hard-fought 25-16 win at rain-lashed Kingspan Stadium came at the expense of a side who had launched their league season with seven straight victories.
Two tries from Darren Cave - one in each half - and a first-half effort from Franco van der Merwe brought Ulster the four points.
Ospreys put up a real fight in a bid to keep their unbeaten record going, as they battled back from trailing 18-3 at half-time to narrow the home side's lead to 18-16 in the final 20 minutes.
A Martin Roberts score and the boot of Sam Davies had brought the Ospreys right back into the game, but Cave's 78th-minute try settled the game for a relieved Ulster.
The conversion of Cave's effort by Ian Humphreys proved a real sting in the tail as it denied the Welsh side a losing bonus.
Even with the rain driving down, Ulster showed their attacking intent from the off and after showing they had an edge in the scrums the home side shunted the Ospreys off the ball in their own 22 and from the attack, Cave got the try from close range after 10 minutes.
Paddy Jackson nailed the conversion and Ulster were up and running at 7-0, and the margin became 10-0 after 20 minutes when Jackson kicked a penalty, adding another just after the half-hour mark following a driving maul from the home side were disrupted.
The Ospreys finally got off the mark in the 32nd minute when Sam Davies landed a penalty which came straight after the restart.
At 13-3, the next score looked crucial and it fell to Ulster when their scrummaging power again resulted in a penalty, and after they kicked for the corner the home side launched a driving maul which made it to the line with second row Van der Merwe scoring in the 39th minute.
Jackson missed the conversion and the half ended with Ulster leading 18-3.
The Ospreys needed to respond and did so three minutes into the second period, after their line-out maul drove over the Ulster line and scrum-half Martin Roberts got the touchdown which Davies converted to narrow the home side's lead to 18-10.
Momentum had swung the Ospreys way and two penalties from Davies shortly before and after the hour mark narrowed Ulster's lead to just 18-16, with the second strike following just after Jackson was forced off with what appeared to be an arm injury.
It was nerve-jangling and the conditions were worsening, Ulster somehow found a way to relaunch their line-out maul late on and after a series of pick-and-gos, Cave got the ball with space and stepped inside to just make the line, the vital score coming courtesy of the TMO.
Humphreys, on for Jackson, converted which not only secured the game but denied the Ospreys any reward.
Ulster: S Olding; L Ludik, D Cave, S McCloskey C Gilroy, P Jackson, P Marshall; C Black, R Herring, W Herbst, L Stevenson, F van der Merwe, C Ross, S Reidy, R Wilson (capt).
Ospreys: D Evans; T Grabham, A Bishop, A Beck, A Natoga; S Davies, M Roberts; D Jones, S Parry, D Arhip; L Peers (capt), R Bernardo; J King, S Lewis, D Baker.
A bit of previous
ULSTER’S LAST SIX RESULTS:
Ulster 23 Newport Dragons 6**
Ulster 13 Toulon 23*
Leicester 25 Ulster 18*
Ulster 29 Glasgow 9**
Ulster 30 Edinburgh 0**
Zebre 13 Ulster 6**
*Champions Cup **Pro12
OSPREYS’ LAST SIX RESULTS:
Ospreys 35 Dragons 51***
Ospreys 9 Saracens 21***
Ospreys 26 Connacht 11**
Northampton 34 Ospreys 6*
Ospreys 42 Benetton Treviso 7*
Ospreys 26 Cardiff15**
*Champions Cup * *Pro12 ***LV Cup
More to follow...