The ghost of Rodney Parade threatened to haunt Ulster once again, but the Irish Province dug deep to secure the win they needed to maintain Guinness PRO12 play-off qualification ambitions.
With fifth placed Scarlets securing a bonus-point win in a 26-10 home win over Edinburgh, Ulster needed to take a win from a venue they struggle at.
Dragons clawed their way back into the game twice after Ulster had led 10-3 and 17-10.
Craig Gilroy was sin-binned early in the second half and Ulster had to play the last five minutes with 14-men when replacement prop Rodney Ah You was red carded for a clumsey dangerous tackle on Carl Meyer.
Ulster had led by three points at that point - but they were to have the final say with a converted try through replacement hooker John Andrews to secure a valuable win.
The visitors showed early intent, attacking strongly and keeping a high tempo.
Outhalf Stuart Olding put a little kick ahead for himself to chase but it went to far, but he got Ulster into a storng position minutes later with a jinxing run.
Ruan Pienaar’s box kick into space, the bounce wrong-footed two Dragons players and Irish winger, Craig Gilroy, needed no inviation, showing great control to kick ahead, gather and open the scoirng. Pienaar’s conversion made it 7-0 after seven minutes.
Dragons came back at Ulster and although the visiting defence held, a penalty on 12 minutes for killing the ball, saw outhalf Angus O’Brien converted the kick to put their first points in the board.
The Welsh side put Ulster under huge pressure with some surging runs from the forwards, but some great defensive work kept them at bay.
Ulster lost Wiehahn Herbst after 22 minutes with a head injury, Rodney Ah You replacing him.
The Dragons continued to dominate possession and when Ulster did get out of trouble after a great break from Pienaar and involving Jared Payne and Sean Reidy, a penalty to touch saw a crooked throw into the lineout and then a penalty against the visitors at the scrum.
But it was Ulster who were to score next, Pienaar slotting over a 34th minute penalty with Dragons’ fullback Carl Meyer missing just on half time, leaving the hosts trailing by seven points - which was probably not what they deserved.
Kieran Treadwell’s thunderous burst showed Ulster’s intent at the start of the second half, but they again were unable to retain possession and the Dragons came at Ulster.
Craig Gilroy’s harsh sin-binning47 minutes for a deliberate knock-on provided the opporutnity the hosts needed and from a lineout lock Raynard Landman forced his way over for a try which O’Brien superbly converted to tie the game.
Ulster responded by brining Irish international outhalf Paddy Jackson off the bench, moved Olding to centre and Darren Cave left the arena.
It was all Ulster pressure but the Dragons managed to defend, illegally at times, and two kickable penalties were turned down by Ulster. A Dragons knock-on close to the line presented a golden opportunit, Iain Henderson charged, Jackson fed Olding and he popped inside to Payne who raced through - and the TMO confirmed after Dragons claims of obstruction.
Pienaar was forced off having taken an accident boot to the face in a tackle, Paul Marshall missing a tackle in his first act on Sarel Pretorious. Ulster weathered another spell of pressure, Chris Henry turned ball over 15m out, but Marshall’s kick was charged down and Ollie Griffths was awarded the try following television review. O’Brien levelled matters again with the conversion after 66 minutes.
Olding put a lovely little grubber kick through for Gilroy, but Dragons winger Tom Prydie picked the ball literally out of the Irish winger’s hands to save a certain try with 10 minutes to go.
Further Ulster pressure eventually resulted in a penalty and Jackson slotted the simple kick over to give his side a thre-point advantage with six minutes remaining.
Ah You’s clumsy no arms tackle on Meyer was deemed deliberate and dangerous and he was red carded.
But Ulster got over for a try from a driving maul after a lineout, replacement hooker John Andrews getting the touchdown and Jackson converting to crucially put them 10 points ahead with seconds on the clock.
Dragons: Carl Meyer; Adam Hughes, Tyler Morgan, Sam Beard, Tom Prydie; Angus O’Brien, Charlie Davies; Sam Hobbs, Rhys Buckley, Brok Harris, Nick Crosswell, Rynard Landman, Ollie Griffiths, Nic Cudd, Lewis Evans (capt).
Replacements: Darran Harris, Phil Price, Lloyd Fairbrother, Matthew Screech, Harrison Keddie, Sarel Pretorious, Dorian Jones, Adam Warren.
Ulster: J Payne; C Gilroy, L Marshall, D Cave, C Piutau, S Olding, R Pienaar; A Warwick, R Herring (capt), W Herbst, K Treadwell, A O’Connor, I Henderson, C Henry, S Reidy.
Replacements: J Andrew, C Black, R Ah You (Herbst 22), R Diack, C Ross, P Marshall, P Jackson, J Stockdale.