Cardiff Blues avoided a first Pro14 loss to Dragons since 2014 as they fought back to overcome their local rivals in a rugged Boxing Day derby.
At a windswept and rain-soaked Rodney Parade, Josh Lewis kicked Dragons into a 9-3 half-time lead.
The Blues improved after the break and led for the first time with just 12 minutes left as Josh Turnbull drove over for the game's only try.
Jarrod Evans' conversion sealed the Blues' 11th straight win over Dragons.
The result lifts Cardiff Blues up to third in Pro14 Conference B, though they will find themselves back in fourth if Scarlets beat Ospreys in the second Welsh derby on Boxing Day.
Although this was a game of little or no aesthetic quality, it will have been a satisfying victory for the Blues, who were well below their best for much of the encounter.
And winning will have been particularly pleasing as it came as the visiting team at Rodney Parade, following four Pro14 'home' games at the Newport venue while their Cardiff Arms Park home was being repaired.
Although this fixture went ahead while others elsewhere in the league were postponed, it still had its share of coronavirus-enforced absences.
Several Dragons players were missing after another new case during the week, while Blues head coach John Mulvihill had to watch from home, where he was self-isolating after coming into contact with a player who had tested positive.
History suggested this should have been a comfortable afternoon's viewing for Mulvihill as the Blues had won their previous 10 matches against Dragons, their longest winning run against any opponents in the Pro14.
The Australian will have been squirming on his sofa, however, as his side started slowly.
Ill discipline was the visitors' biggest problem, as they conceded seven penalties in the opening 20 minutes and allowed Dragons to build a 9-0 lead thanks to Lewis' boot.
With a swirling wind and heavy rain hindering handling and attacking ambition, the Blues reckoned set-pieces were their likeliest route back into the contest.
Twice they had line-outs close to the Dragons' try line but saw their driving mauls stopped short, so it was left to a Evans penalty to get them off the mark.
Even with the trying conditions in mind, it was an underwhelming first half from the Blues and early in the second they fell further behind as Lewis' fourth penalty put the hosts 12-3 ahead.
Evans kicked his second to bring the Blues back within six points, only for his side to continue undermining their own efforts with yet more poor discipline.
The steady flow of penalties allowed Dragons to control territory for long periods and, on the occasions they were forced back into their 22, another Blues misstep would invariably give them an easy escape.
Eventually, however, the penny dropped for the Blues and, once they were able to keep their discipline in the Dragons' 22, they produced the game's only try.
It was a patient score, engineered perfectly for testing conditions.
Having kicked a penalty to the corner, the Blues retained possession from their line-out and kept the ball among their forwards, who picked and drove their way through 16 phases.
Then from the 16th phase it was left to number eight Turnbull to burrow over from close range for a try which Evans converted to put the visitors in front for the first time in the match - with 12 minutes remaining.
The Blues saw out the closing stages with a clinical precision which had evaded them earlier in the game, keeping possession near the Dragons' try line and holding out for yet another derby victory over their Gwent rivals.
Dragons captain Jamie Roberts:
"It was quite a strong wind in that first half and we had it, and it just wasn't quite a big enough lead to hold out in the second half.
"They converted their pressure - they scored a try and we didn't.
"It's desperately frustrating. I think their bench were stronger than ours when they came on and we missed touch on 71 minutes with a chance to put pressure on them in their 22.
"In a game like this with that weather, when it's going to be that tight, those are big things. We conceded two penalties when we were chasing back from kicks.
"There were some amateur mistakes and poor penalties to give away, so only ourselves to blame."
Cardiff Blues try-scorer Josh Turnbull:
"The Dragons wanted an untidy game like that because they wanted to cause us problems at the contact area.
"We knew with the wind in the second half we could claw back the points and that's what we did. We kicked the ball deep down the middle of the field and we got our rewards.
"The wind was massive but we kept our discipline which was important.
"In the second half we played in the right positions and were able to put them under pressure in the second half which eventually meant we could get some points.
"The important thing was how we stuck together as a squad. It was vitally important to get a win here."
Dragons: Jonah Holmes; Owen Jenkins, Jack Dixon, Jamie Roberts (capt), Ashton Hewitt; Josh Lewis, Tavis Knoyle; Brok Harris, Elliot Dee, Lloyd Fairbrother, Ben Carter, Matthew Screech, Harrison Keddie, Taine Basham, Aaron Wainwright.
Replacements: Richard Hibbard, Aaron Jarvis, Leon Brown, Lewis Evans, Huw Taylor, Luke Baldwin, Aneurin Owen, Evan Lloyd.
Cardiff Blues: Hallam Amos; Aled Summerhill, Garyn Smith, Max Llewellyn, Josh Adams; Jarrod Evans, Lloyd Williams; Brad Thyer, Kristian Dacey, Dillon Lewis, Ben Murphy, Seb Davies, Cory Hill (capt), James Botham, Josh Turnbull.
Replacements: Ethan Lewis, Rhys Carre, Dmitri Arhip, Alun Lawrence, Shane Lewis-Hughes, Tomos Williams, Jason Tovey, Rey Lee-Lo.
Referee: Craig Evans (WRU)
Assistant Referees: Nigel Owens and Dan Jones (both WRU)
TMO: Sean Brickell (WRU)