The Dragons got their Heineken Cup campaign back on track as they overpowered Glasgow at Rodney Parade.
Adam Rhys Jones, stand-in skipper Luke Charteris and Martyn Thomas all plunged over for scores before half-time.
A Johnnie Beattie response briefly restored parity on 27 minutes and Kevin Tkachuk tore through to give the visitors hope after the interval.
Glasgow staged a fierce late rally at the end of a lively second half but the hosts held firm for victory.
Both sides lost their opening encounters in Pool 2, meaning this was very much a "must-win" affair for all concerned.
With their backs producing their best performance for some time, the Dragons dominated from the off and, after James Arlidge and Dan Parks traded penalty misses, the home side went ahead on 12 minutes.
Declining to take a kick at goal, they found touch on the Warriors goal-line. Possession was secured and Jones was driven over for the try, which Arlidge converted.
The Scots were dealt a further blow when Chris Cusiter, only recently returned from a three-week absence with a flu bug, left the field with an ankle injury.
Against the run of play, Glasgow levelled when they produced an excellent flowing move that ended with Beattie strolling through a huge gap in the home defence.
Parks converted but any momentum for the visitors was lost when Beattie was sent to the sin-bin soon afterwards for trampling on an opponent.
The Dragons took immediate advantage with Arlidge dropping a goal and Parks fired another penalty wide.
With the interval approaching, Glasgow were turned over on halfway and the Dragons moved the ball skilfully for Charteris to crash over again.
From the restart Glasgow pressed but the Dragons broke away through good work from Aled Brew and Rhodri Gomer-Davies, to set up a ruck on halfway.
Scrum-half Wayne Evans put in a smart kick to the blindside for Thomas to outpace the defence, collect and score. Arlidge converted the try to make it 22-7 at the break.
Dragons flanker Dan Lydiate was yellow-carded after 45 minutes for a dangerous tackle and the hosts conceded a score just before his return when replacement Tkachuk barged his way over. Parks converted with a tremendous kick from the touchline.
The hosts threw away a golden opportunity when Gomer-Davies should have set Will Harries up for a clear run in but the centre chose to dummy and the chance was lost.
The game continued at a frantic pace with French referee Roman Poite allowing for an open and exciting game, but there was to be no further score as the Dragons defence held on to repel a wave of Glasgow attacks.
Glasgow, who now have no realistic chance of qualification for the knock-out stages, were denied a bonus point when Parks hit the upright with the last kick of the ball.
Dragons coach Paul Turner:
"Just a win is what we want to do every game, but we had opportunities to get a bonus point.
"It was probably easier not to score. We should have put it away.
"Again we saw another prop [Phil Price] injured today and he's going to be out for quite a bit of time, so the alarm bells are ringing there."
Glasgow coach Sean Lineen:
"We lost the game again. Dragons didn't win it.
"All three tries from us having the ball and there was a lot of naïveté out there, a lack of direction.
"When we made mistakes a couple of heads went down and Dragons took full advantage.
"That's just about the Heineken Cup over now, so we'll have to concentrate on the league, which is not a bad thing with where we are with this group of players."
Dragons: M. Thomas, Brew, Gomer-Davies, Smith, Harries, Arlidge, W. Evans, Price, S. Jones, Bracken, A. Jones, Charteris, Lydiate, G. Thomas, L. Evans. Replacements: Fussell for Harries (70), Gustafson for Price (39), Sidoli for A. Jones (56), MacDonald for L. Evans (61). Not Used: Goodfield, Robinson, Lee, Tovey.
Glasgow: Stortoni, Shaw, McCall, Morrison, T. Evans, Parks, Cuister, Welsh, Hall, Low, Barker, Kellock, Vernon, Barclay, Beattie. Replacements: Horne for Stortoni (76), O'Hare for McCall (63), Gregor for Cuister (12), Tkachuk for Welsh (40), McArthur for Hall (59), Turner for Barker (50), Brown for Vernon (50). Not Used: Kalman.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.