The Dragons cruised to a Pro12 victory while Ulster slumped to a second straight defeat in Wales.
Jason Tovey kicked the Dragons into an early lead before Tom Riley sprinted in for the only try on 24 minutes after Ulster's Nevin Spence was sinbinned.
Tovey fired over four penalties in an error-strewn first half at Rodney Parade to put the Dragons 19-6 ahead.
Penalties from Tovey and Ulster fly-half Paddy Jackson were the only scores in a lacklustre second half.
Both side's were guilty of mistakes as the game opened in scrappy fashion on a humid evening in Newport.
Jackson slipped over a third-minute penalty for Ulster but the hosts were soon in control.
Tovey slotted over his his first penalty before Tonderal Chavhaga delighted home fans with a blistering run on his Dragons debut.
Dragons moved ahead from a Tovey penalty while Ulster centre Spence was sinbinned on 23 minutes for a second high tackle.
The Welshmen capitalised within 60 seconds, Riley darting through a gap left by Spence's absence for a converted try.
Jackson missed a penalty attempt before Tovey stretched the lead to 13 points with another pinpoint penalty.
Ulster were back on the scoresheet as Jackson slotted between the posts but Tovey was to convert his fourth penalty seconds before the break.
Tovey maintained his perfect record with the boot as he added another three points seven minutes into the second half.
Jackson kept Ulster in touch with his third penalty four minutes later but, in keeping with the defeat to the Ospreys last weekend, handling errors and a high penalty count were thwarting their hopes.
Tovey failed to find the target for the first time in the 64th minute with his effort stricking the upright.
Ulster went close to setting up a tense finale when Ian Whitten went over in the corner, but the try was ruled out with the wing's foot just in touch.
The Dragons pressed in vain for a second try in the dying minutes but they easily secured their second win of the league campaign.
Newport-Gwent Dragons: M. Thomas, Chavhanga, Riley, A. Smith, Poole, Tovey, W. Evans, N. Williams, Willis, Buck, A. Jones, Sidoli, L. Evans, G. Thomas, Coombs.
Replacements: Waters for M. Thomas (65), M. Jones for A. Smith (70), Bedford for W. Evans (61), Buckley for Willis (61), Jenkins for A. Jones (73), Groves for L. Evans (56), O'Driscoll for G. Thomas (65).
Not Used: Price.
Ulster: D'Arcy, Gilroy, Spence, L. Marshall, Whitten, Jackson, P. Marshall, Fitzpatrick, Brady, Cronin, Stevenson, Tuohy, Wannenburg, Faloon, Henry.
Replacements: Gaston for D'Arcy (65), Porter for P. Marshall (47), Barker for Stevenson (52), Diack for Faloon (53).
Not Used: Kyriacou, McCall, Macklin, McKinney.
Ref: Neil Patterson (RFU).