The Ospreys claimed their first win in this year's LV= Cup and all but ended the Dragons' slim hopes of progressing with a 26-21 victory.
The Ospreys had lost the last three meetings between the sides but tries from Ross Jones, Hanno Dirksen, Eli Walker and Stefan Watermeyer earned them the win, with fly-half Matthew Morgan kicking three conversions.
The Dragons had been level 14-14 at the interval thanks to a try from wing Pat Leach and three penalties from fly-half Steffan Jones, but replacement Luke Williams' last-gasp converted try was their only score of the second half.
Instead, it was all the Ospreys after the break. With 48 minutes gone a solid scrum on the 22 gave the hosts something to attack from, Watermeyer twice driving forward, before Walker was able to twist and turn his way over from close range with Morgan converting.
After a scrappy spell with both teams tossing away possession, the Ospreys grabbed their fourth try.
Habberfield did extremely well to secure the high ball under pressure, offloading to Sam Lewis immediately.
The openside spun a great pass out to Watermeyer and there was no stopping the South African as he charged forward 40m to mark his debut with a try.
Morgan missed the conversion, leaving the Ospreys advantage at 12 points which was enough to hold on for the win - despite being down a man after Chauncey O'Toole was pinged at the breakdown and sent to the sin-bin.
Tries: Jones, Dirksen, Walker, Watermeyer
Cons: Morgan 3
Tries: Leach, Williams
Pens: S Jones 3
Ospreys: 15 Ross Jones, 14 Hanno Dirksen, 13 Sonny Parker (c), 12 Stefan Watermeyer, 11 Eli Walker, 10 Matthew Morgan, 9 Tom Habberfield, 8 Morgan Allen, 7 Sam Lewis, 6 Chauncey O'Toole, 5 James Goode, 4 Lloyd Peers, 3 Aaron Jarvis, 2 Scott Baldwin, 1 Cai Griffiths.
Replacements: 16 Mefin Davies, 17 Joe Rees, 18 Jonathan Thomas, 19 Sam Williams, 20 Rory Pitman, 21 Tom Grabham, 22 Sam Davies, 23 Luke Morgan.
Dragons: 15 Jamie Smith, 14 Will Harries, 13 Andy Tuilagi, 12 Lewis Robling, 11 Pat Leach, 10 Steffan Jones, 9 Joe Bedford (capt), 8 Ieuan Jones, 7 Darren Waters, 6 Hugo Ellis, 5 Jevon Groves, 4 Royce Cadman, 3 Dan Way, 2 Sam Parry, 1 Phil Price.
Replacements: 16 Rhys Buckley, 17 Aaron Coundly, 18 Keiron Jenkins, 19 Dan Hodge, 20 Josh Tyler, 21 Jonathan Evans, 22 Luke Williams, 23 Geraint O'Driscoll.
Referee: Dean Richards (England)