Glasgow and Scotland skipper Jon Petrie was taken to hospital after suffering a dislocated shoulder as the Dragons won the Celtic League opener.
Glasgow (7) 15
Tries: Swindall, Roberts
Dragons (0) 21
Tries: Forster (2), Wyatt
Con: Warlow (3)
Petrie was hurt during a mass brawl at the end of the first half at Hughenden.
Steve Swindall's try put Glasgow ahead soon after, but Jason Forster replied after the break.
Gareth Wyatt and Forster added tries for the Welsh visitors before Mike Roberts marked his Glasgow debut with a consolation try.
Trouble had erupted when the home pack buckled their Welsh opponents.
As the home captain was stretchered off in distress, Irish referee George Clancy yellow-carded Rhys Thomas.
The opening 35 minutes had been a nervy and tense affair, with the defences cancelling each other out and Glasgow's Dan Parks missing with two penalty attempts.
Warriors suffered their first injury setback when Canadian international prop Kevin Tkachuk was forced off with a shoulder problem.
Yet it was only after the departure of Petrie - to an injury that could threaten his place in the autumn internationals - that the encounter started to produce fluent and attacking rugby.
Flanker Swindall forced his way under the crossbar to give Parks a formality of a conversion as Glasgow took control.
But Dragons came out with much more purpose after the restart and captain Forster burrowed through from point-blank range.
Craig Warlow added the extras from a tricky angle.
The visitors surged ahead with a touchdown by Wyatt following an interception on the halfway line and Warlow was again on target from wide.
Parks clawed back a penalty to set up an exciting finale in which Forster pounced on a loose ball to make sure of victory for the Dragons, Warlow converting, before Roberts' try.
"They put a lot of pressure on us in the first half, but we came out after the break and the pack and half backs got us in the right areas," said the Dragons' new coach Paul Turner.
"Having watched the Dragons for the last couple of seasons I knew we then had the class behind to finish it off."
Glasgow: Shaw, Lamont, Craig, Henderson, Roberts, Parks, Beveridge, Tckachuk, Lawson, Harrison, Turner, Hamilton, Swindall, Wilson, Petrie. Replacements: Howarth for Shaw (71), Barrow for Henderson (55), Pinder for Beveridge (62), Corsar for Tckachuk (12), Hayter for Turner (60), Dearlove for Petrie (32).
Not Used: Thomson.
Dragons: Morgan, Wyatt, Luscombe, Bryant, Fussell, Warlow, Baber, Black, Crawford, R. Thomas, Gough, Sidoli, Hall, Bryan, Forster, Maddocks. Replacements: Sweeney for Bryant (59), Hinton for Fussell (74), Charteris for Sidoli (51), Maddocks for Hall (56), Ringer for Maddocks (51).
Not Used: Tuipulotu, Robinson.
Ref: George Clancy (RU).