After back-to-back wins over the Celtic League's other Scottish sides, Glasgow were caught out at home as the Dragons came up with a late flurry of points.
Glasgow (20) 29
Tries: Dearlove, Macfadyen
Cons: Parks (2)
Pens: Parks (5)
Dragons (25) 38
Tries: Ringer, Morgan, Snow, Cooper
Cons: Sweeney (3)
Pens: Sweeney (3)
Jamie Ringer, Kevin Morgan, Rod Snow and Gareth Cooper ran in tries for the battling Welsh visitors.
Paul Dearlove and Donny Macfadyen were the Glasgow try-scorers, while the rest of the home side's points came from the in-form boot of Dan Parks.
Sione Tuipolutu's late drop-goal denied Glasgow a consolation bonus point.
The Dragons broke the deadlock with a simple penalty by stand-off Ceri Sweeney for offside.
His strike acted as a wake-up call to Glasgow, who stormed up field to seize the initiative with a superb touchdown by flanker Dearlove.
He was involved in the early stages of the move by latching onto a huge miss pass from Andy Henderson.
Sean Lamont then battled his way through four markers before Dearlove ploughed over with three defenders clinging to him.
The conversion was from the widest possible angle, but Parks made it look so easy.
The home side were then punished for dropping their guard. First, Sweeney landed a long-range penalty for obstruction.
Then back-row man Ringer wrong-footed full-back Scott Barrow to dart over for the Dragons' first try.
Glasgow's response was quick and positive with Barrow acting as the link between Henderson and Macfadyen, who was left with a clear scuttle to the line.
Parks slotted the extra points - then banged over a penalty from in front.
However, another moment of slackness at the back handed the visitors a gift of a second try with Kevin Morgan being permitted to run in from almost halfway. Sweeney clipped over the goal to earn the lead once again.
Soon after the Dargons' Canadian Snow was driven over by his pack, Sweeney adding the extras.
Parks was wide of the mark with a penalty, but the home fans were smiling again when he thumped over his next attempt.
The frantic end-to-end action continued after the break with Parks claiming his third penalty for a high tackle - and he repeated the dose to snatch back the lead for Glasgow.
He was on target again as the Dragons began to lose their discipline - but the game was back in the melting pot when Gareth Cooper sneaked over in the corner for their fourth touchdown.
Sweeney converted - then added a penalty to seal Glasgow's fate.
In the closing stages a drop-goal from Tuipolutu denied the home team a consolation bonus point.
Glasgow: S Barrow; R Kerr, G Morrison, A Henderson, S Lamont; D Parks, S Pinder; K Tkachuk, G Bulloch, L Harrison, A Hall, D Turner, P Dearlove, D Macfadyen, J Petrie (capt).
Replacements: S Lawson, A Kelly, A Wilson, J Beattie, G Beveridge, C Howarth, K Logan.
Dragons: K Morgan; G Wyatt, H Luscombe, S Tuipulotu, N Brew; C Sweeney, G Cooper; R Snow, S Jones, R Thomas, I Gough, P Sidoli, R Bryan, J Ringer, M Owen (capt).
Replacements: J Richards, A Black, R Oakley, S Waldron, C Warlow, J Bryant, G Baber.
Referee: Alistair McKay (Ireland)