Dragons suffered defeat in the final game of the season at Rodney Parade as play-off chasing Ulster secured maximum points and a crucial Guinness PRO14 win.
Ulster took the lead courtesy of a try from Jordi Murphy and second half scores from Marty Moore and John Cooney send the Irish side clear.
Dragons hit back with a penalty try – as Ulster were reduced to 13 men – and Taine Basham capped an impressive display with a late score.
But a try from visiting captain Alan O’Connor wrapped up the bonus and ensured Ulster moved back up to third spot in Conference B.
Dragons made nine changes for the fixture with Hallam Amos returning from Wales duty and he was joined by Leon Brown who was named among the replacements.
But they were dealt a late blow as skipper Richard Hibbard pulled out in the warm-up with a rib injury.
Dragons looked to make a bright start under dark and menacing skies with the recalled Daf Howells looking to jink past tackles and Basham rumbling past men.
Warren and Josh Lewis were busy in defence to try and stop early away momentum while Keddie, who assumed the captaincy, also led from the front before being forced off with an injury knock.
Fly half Lewis gave Dragons the lead with a sweetly struck penalty on 17 minutes.
But growing away pressure finally told just before the half hour, as back row Muprhy was shunted over from close range and Cooney converted for the lead.
Lewis missed a second penalty attempt wide right while Ulster almost scored, only for a superb last-ditch tackle from Jordan Williams to halt Robert Baloucoune.
Wales Under-20 ace Basham was impressing and a superb counter ruck saw him push men away, pick up the loose ball and sprint away.
He intelligently looked to feed the supporting Lewis, butfthe home fly half was tackled off the ball by Darren Cave who was yellow carded.
Two changes at the break saw Leon Brown and Jason Tovey come on, and the fly half almost broke away to feed Rhys Lawrence.
Ulster also threatened, with Greggains racing back to halt Baloucoune, before they did go over for a second when prop Moore burst through the defence with a barrelling run.
Moments later scrum half Cooney was at the end of a slick handling move to glide over unopposed and convert his own score.
Stand-in skipper Brok Harris was urging his team on with a number of crunching runs into contact while Matthew Screech was industrious to turn over ball on the floor.
Dragons enjoyed their best spell on the game in the final quarter, with visiting wing Rob Lyttle yellow carded after he deliberately knocked-on with Howells set to score.
Seconds later he was followed by team-mate Louis Ludik was yellow carded for the same offence as referee Berry awarded a penalty try.
Any hopes of a home comeback were extinguished as the Irish kept the ball tight and duly rumbled up field before sending Alan O’Connor over.
However, the final word went rightfully to Basham who smashed his way over from close range from the back of a powerful home scrum.
Timeline:
17m Lewis p 3-0
25m Murphy t Cooney c 3-7
45m Moore t Cooney c 3-14
49m Cooney t Cooney c 3-21
70m Penalty t 10-21
75m O’Connor t Burns c 10-28
77m Basham t 15-28
Dragons Rugby: Jordan Williams, Hallam Amos (Morgan 55), Adam Warren, Jarryd Sage, Dafydd Howells, Josh Lewis (Tovey 40), Rhodri Williams (Knoyle 51); Brok Harris (Reynolds 78), Rhys Lawrence, Lloyd Fairbrother (Brown 40), Joe Davies (Williams 75), Matthew Screech, Huw Taylor, Taine Basham, Harri Keddie (Greggains 18)
Replacements: Ellis Shipp, Josh Reynolds, Leon Brown, Max Williams, Lennon Greggains, Tavis Knoyle, Jason Tovey, Tyler Morgan
Ulster Rugby: Louis Ludik, Robert Baloucoune, Darren Cave (Hume 63), Stuart McCloskey, Rob Lyttle, Billy Burns, John Cooney (Shanahan 560; Eric O’Sullivan (Andrew 64), Rob Herring, Marty Moore (Herbst 52), Alan O’Connor, Kieran Treadwell, Clive Ross (Rea 64), Jordi Murphy, Nick Timoney
Replacements: Andrew Warwick, John Andrew, Wiehahn Herbst, Ian Nagle, Matthew Rea, David Shanahan, James Hume, Peter Nelson
Referee: Stuart Berry (SARU, 22nd competition game)
Attendance: 5,142