The Ospreys' 100% league record was shattered by the Dragons in a table-topping clash at Rodney Parade.
Dragons (13) 33
Tries: Morgan (2), Thomas
Cons: Warlow (3)
Pens: Warlow (3)
Ospreys (12) 29
Tries: Spice, Tiueti
Cons: Jones (2)
Pens: Jones (5)
Two Kevin Morgan tries helped the Dragons into a 26-12 lead, but the Ospreys had a last quarter fight back.
Jason Spice inspired them with a try as Matthew Jones kicked 19 points, but the Dragons fired back with a Rhys Thomas try adding to Craig Warlow's 18 points.
Dave Tiueti's last-minute try gave the Ospreys a bonus, keeping them seven points above the Dragons in the table.
The Dragons were missing eight players on international duty, the Ospreys seven with Jonathan Thomas suspended, but a large crowd turned out for the game
The Ospreys dominated the early territory and possession and were denied a try when wing Stefan Terblanche - back after a
broken foot - was tap-tackled by Jamie Ringer.
All the visitors had to show for their efforts was a three-point lead from three Jones penalties against two from
That was overhauled on 33 minutes when Warlow made a great break past Jones from scrum ball on half-way.
The fly-half fed the supporting Sione Tuipulotu who put Morgan over for a converted try.
Jones clawed back another penalty, and on the stroke of half-time the Ospreys were just denied a try after a 70-yard break
and run from Terblanche.
The deadlock of a tense, error-strewn second-half was broken on 52 minutes when Tuipulotu took a quick tap penalty on the
The visitors were caught napping, Tuipulotu able to send Morgan over for a simple second try.
A clinical drop goal from Warlow, followed by his third penalty, put the Dragons into a comfortable 14-point lead as their
scrum and line-out began to boss the league leaders.
The Ospreys brought on Spice at scrum-half and the Kiwi immediately had an impact, his break from a line-out winning a
penalty that Jones knocked over.
With Spice driving the Ospreys on, a sustained attack saw Richard Mustoe dent the Dragons line, Spice picking up to score
under the posts.
The conversion brought the Neath-Swansea side to within four points, but the Dragons fired straight back, replacement prop Thomas rampaging through for the decisive try.
Another substitute - Ospreys three-quarter Tiueti - was also having an impact, and his try after fine driving work from Elvis Seveali'i and Andy Newman gained the visitors a bonus point for their evening's work for finishing within seven points.
"It's been a long, frustrating couple of months for some of the boys in the squad, but we were out to prove a point tonight," said man-of-the-match Warlow, who has been kept out of the team by Wales' Ceri Sweeney.
"Our team is renowned for its pack, and they came up with the goods again tonight.
"The Ospreys are a very good team, and it made for a fantastic game for everybody involved."
Ospreys coach Lyn Jones was an angry man after seeing his side fall to their third successive defeat.
"We were on top for large parts of the game, but for 20 minutes at the start of the second half we lost control," Jones told BBC Sport Wales.
"We won plenty of ball but didn't get field position - some people here are going to get a firm talking to."
Dragons: K Morgan; G Wyatt, N Brew, S Tuipulotu, B Breeze; C Warlow, G Baber; R Snow, J Richards, C Anthony, I Gough, P Sidoli, J Ringer, J Forster (capt), R Bryan.
Replacements: S Winn, J Bryant, J Ireland, A Black, K Crawford, R Thomas, R Oakley.
Ospreys: A Durston; R Mustoe, D Bishop, E Seveali'i, S Terblanche; M Jones, A Williams; P James, B Williams (capt), A Millward, A Newman, L Bateman, J Bater, S Tandy, N Bonner-Evans.
Replacements: H Bennett, C Griffiths, L Tait, R Pugh, J Spice, S Connor, D Tiueti.
Referee: Iain Ramage (Scotland)