Dragons grabbed two vital bonus points but the wait for derby day success over Cardiff continued after a 31-29 defeat in an engrossing United Rugby Championship encounter.
Early tries from front row duo Taylor Davies and Mesake Doge had raised hopes of a first away success in the capital since Boxing Day 2014.
The home side, though, hit back with scores from Lloyd Williams, ex-Dragon Hallam Amos and a penalty try to wrestle back control at the Arms Park.
A red card to home centre Rey Lee-Lo for a high shot ignited renewed optimism and Rio Dyer marked his comeback with a score.
But Cardiff held firm before a score from Joe Makysmiw with the final play of the match snatched reward for a spirited performance.
Dragons made a sensational start to the derby and with quick ball to work with the team rattled through the phases and repeatedly punched holes in the home defence.
Lock Maksymiw went close with a superb line before Taylor Davies applied the finish as he touched down against the posts. Playmaker Sam Davies added the extras for a dream start.
The returning Jarrod Evans popped over a penalty for the hosts on six minutes to reduce the deficit.
The elusive Jordan Williams broke from deep, after powerful work by Jonah Holmes after he retreating to pick up a loose ball, while home scrum half Williams was yellow carded for a swinging arm in the tackle.
The 14-men looked to the home forwards to respond as they kicked to the corner after two quickfire penalties, but the visitors held firm to repel the surge and win a scrum of their own.
Dragons roared back down the other end and Dixon was held up after a strong driving lineout before tighthead Doge crashed over after more composed play.
Williams returned from the sin bin and had an immediate impact as he darted over and Evans cut the away lead to 14-10 after a breathless opening quarter.
A brilliant last-ditch tackle by Jordan Williams stopped Amos after he pinned his ears back and went for the corner, after a scintillating break from Matthew Morgan and Garyn Smith.
Evans cut the lead to a point with a penalty just before the half hour, while Davies missed a kick of his own after bright work from Dixon and Aneurin Owen.
Cardiff hit the front for the first time in the game three minutes before the break when a clever kick in behind sat up nicely for Amos to dot down for a 18-14 advantage.
Ryan introduced Greg Bateman at the interval to try and rectify the set piece after Cardiff enjoyed some dominance late in the first period.
A sweeping move from the visitors looked to have regained the lead as Sam Davies broke into space and fed Holmes who flipped the final pass back in field to Fry to score.
However, the score was chalked off after the TMO adjudged that Morgan had been touched in the air after he collected a high kick.
Cardiff looked to rub salt in the wound as they pummelled runners up field, but great work from Fry at the breakdown secured a crucial turnover.
The respite, though, was short-lived as a maul was sacked illegally and referee Ben Whitehouse awarded the home side a penalty try.
Holmes cut into space as the visitors looked to pick themselves up before a reckless high shot from Lee-Lo on Davies saw the centre sent off.
Davies picked himself up to slot a penalty, but Evans responded with two of his own, one from inside the home half, to establish a 14-point lead.
Argentine scrum half Gonzalo Bertranou was introduced to add more pace and quick hands sent Dyer over on the hour to spark fresh hope.
Dragons showed plenty of heart in the closing stages, but a well-drilled home defence held firm until Maksymiw’s late intervention.
02m T. Davies t S. Davies c 0-7
06m Evans p 3-7
18m Doge t S. Davies c 3-14
21m Williams t Evans c 10-14
27m Evans p 13-14
37m Amos t 18-14
51m Penalty t 25-14
54m S. Davies p 25-17
56m Evans p 28-17
58m Evans p 31-17
60m Dyer t 31-22
80m Maksymiw t S. Davies c 31-29
Cardiff Rugby: Matthew Morgan; Jason Harries (Fish 33), Rey Lee-Lo, Max Llewellyn (Smith 13), Hallam Amos; Jarrod Evans, Lloyd Williams; Corey Domachowski (Thyer 27), Kirby Myhill (Dacey 61), Dmitri Arhip (Davies-King 70), Matthew Screech, Rory Thornton (T. Williams 65), Josh Turnbull, Will Boyde, James Ratti (Lewis-Hughes 59)
Replacements: Kristian Dacey, Brad Thyer, Will Davies-King, Teddy Williams, Shane Lewis-Hughes, Ellis Bevan, Dan Fish, Garyn Smith
Dragons Rugby: Jordan Williams, Jonah Holmes, Jack Dixon, Aneurin Owen, Rio Dyer, Sam Davies, Rhodri Williams (Bertranou 55), Aki Seiuli (Bateman 40), Taylor Davies, Mesake Doge (Coleman 59), Joe Davies, Joe Maksymiw, Harrison Keddie, Ben Fry (Baker 60), Ollie Griffiths.
Replacements: Ellis Shipp, Greg Bateman, Chris Coleman, Huw Taylor, Dan Baker, Gonzalo Bertranou, Josh Lewis, Jared Rosser