A sensational second-half try from Ospreys prop Ryan Bevington clinched a 16-12 victory over Ulster at Ravenhill.
Ulster lost their unbeaten home record in the Pro12 in a dour and insipid game.
While this represented a venerable away victory for a young and enterprising Ospreys side, the result also places a sizeable dent in Ulster's title aspirations.
As uninspiring as this match was, it got off to an expansive start, with the Ospreys displaying a willingness to run the ball the opening few minutes.
But it was Ruan Pienaar who opened the scoring for the hosts on four minutes, when he converted an early penalty opportunity.
Mark Anscombe had picked a young and inexperienced side, and the league leaders struggled to find their rhythm for much of the first half. A catalogue of handling errors ensued, while Rob Herring had an extremely difficult night at hooker. Even Ulster's usually potent scrum was scurrying backwards, with Tom Court under all sorts of pressure in the unfamiliar position of tight head. Matthew Morgan levelled the scoreline on nine minutes, following a period of concerted pressure.
It was the Ospreys who looked to be dominating proceedings in the contact areas and at the breakdown, where their pod system was proving very effective. Pienaar extended Ulster's advantage on 14 minutes, making it 6-3 to the hosts. But the first half remained tarnished by basic errors.
Ulster struggled to achieve any sort of momentum, while the visitors looked the more dominant and physical in defence. A Morgan penalty on 21 minutes restored parity for the Ospreys, who were unlucky not to have established a lead. But it was Ulster who entered the interval ahead after Pienaar converted a penalty on 32 minutes, following a good break by Paddy Wallace.
Ulster's defence coach Jonny Bell had spoken at half-time about Ulster exhibiting "passive defence", and it was clear that the hosts needed to increase their intensity in the second half. When Morgan equalised the scoreline early in the second period, however, the impetus seemed to be firmly with the visitors.
Ulster's ambitions were continually thwarted be their malfunctioning line-out, with the game being reduced to a fairly turgid spectacle.
Ulster's supporters had collective palpitations when talisman Pienaar exited the field injured on 57 minutes.
Stuart Olding did restore his team's lead on 64 minutes, following better work by his forwards. But it was the Ospreys who brought this dull encounter to life.
Prop Bevington finished off a marvellous try following a terrific counter-attack that witnessed the ball being transferred through several pairs of hands. Morgan converted to give the visitors a thoroughly deserved lead.
Ulster did seem galvanised thereafter, but a succession of errors undermined their efforts. The Ospreys defence was truly magnificent, however. Ulster did throw everything at the visitors, but were met time and again by a resolute defensive wall. So, a decent win in the end for a lively Ospreys team.
For Ulster, however, it is back to square one in the Pro12.
Pens: Pienaar 3, Olding
Pens: Morgan 3
Ulster: 15 Ricky Andrew, 14 Andrew Trimble, 13 Luke Marshall, 12 Paddy Wallace, 11 Michael Allen, 10 Stuart Olding, 9 Ruan Pienaar, 8 Robbie Diack, 7 Ali Birch, 6 Michael McComish, 5 Lewis Stevenson, 4 Johann Muller (capt), 3 Tom Court, 2 Rob Herring, 1 Callum Black.
Replacements: 16 Niall Annett, 17 Ricky Lutton, 18 Andrew Warwick, 19 Dan Tuohy, 20 Neil McComb, 21 Paul Marshall, 22 Darren Cave, 23 Chris Cochrane.
Ospreys: 15 Richard Fussell, 14 Tom Habberfield, 13 Tom Isaacs, 12 Jonathan Spratt, 11 Ben John, 10 Matthew Morgan, 9 Kahn Fotuali'i (capt), 8 Joe Bearman, 7 Sam Lewis, 6 Morgan Allen, 5 James King, 4 Ian Gough, 3 Cai Griffiths, 2 Scott Baldwin, 1 Ryan Bevington.
Replacements: 16 Matthew Dwyer, 17 Duncan Jones, 18 Dmitri Arhip, 19 Alun Wyn Jones, 20 Lloyd Peers, 21 Arthur Ellis, 22 Ross Jones, 23 Jamie Murphy.
By Rory McGimpsey