Glasgow ran in seven tries to secure a much-needed bonus point win over the Dragons at Scotstoun.
Rynard Landman's try helped the Welsh side into an early 10-0 lead, but two superbly-taken tries from Nick Grigg gave Warriors the initiative.
Rory Hughes, Ratu Tagive, Lee Jones, Mark Bennett and Peter Horne all touched down before Tyler Morgan scored a late try for the visitors.
The win moves Glasgow within six points of fifth-placed Ulster.
Dragons fly out the traps
The Dragons had just shipped 54 points to Leinster so their early lead must have come as a shock to Glasgow, Angus O'Brien, their fly-half, putting them ahead with the boot, and then putting in a lovely grubber kick to the corner that put Gregor Townsend's team on the back foot.
Pinned in their own 22, Glasgow couldn't escape. When the Dragons came infield Landman stretched for the line, referee Andrew Brace with the help of his TMO giving the try even though it looked like Landman had got the ball down just short. O'Brien banged over the conversion to make it an unlikely 10-0 for the visitors who came into this on the back of 12 defeats in their 16 Pro12 games.
Glasgow desperately needed a four-try bonus point win to keep their already slim semi-final hopes alive and they required a whole lot more ball to get it. Soon enough, they got on top. Tim Swinson and Brian Alainu'uese carried and carried and slowly ground the Dragons down.
Grigg gets Glasgow going
Nick Grigg, terrific throughout, got his first just before the half hour, spinning through weak Dragons defence to score. Then he added another, a lovely solo run where he ripped through an increasingly porous Dragons. Horne converted both and Glasgow were ahead at 14-10.
They suffered the loss through injury of Richie Vernon just before half-time - poor Vernon has been cursed these past years - but they kicked on regardless. Just after the restart, Hughes blasted though more soft defending to get Glasgow's third, injuring himself in the process.
Glasgow's precious bonus point try came seven minutes later when the excellent Horne picked out substitute Tagive with a crossfield kick and the Australian, on his home debut, strolled over. With Horne's conversion, Glasgow were home-free at 28-10.
Warriors crush Welsh resistance
Jones piled on the pain for the Dragons with the fifth and Bennett sped away for the sixth. The holes were opening up all over the place for Glasgow at that point and after losing their last three in the Pro 12 they basked in all the space they were given. Horne's fifth conversion from six brought it to 40-10. Horne ran in the seventh to throw another seven-points into the mix.
Morgan got one back for the Dragons at the end, converted by Dorian Jones, but this was another thumping for the Welsh side - and more than a century of points conceded in two games.
For Glasgow, it was a needed confidence booster for the Warriors ahead of what promises to be a hugely testing Pro 12 run-in. They have Connacht at home next, then Munster and Leinster away either side of a visit from Zebre. They finish with Edinburgh at Scotstoun. They're going to have to win most if not all of those game to make the top four. This will at least give them a lot of heart for the hard road ahead.
Glasgow Warriors: Peter Murchie; Lee Jones, Mark Bennett, Nick Grigg, Rory Hughes; Peter Horne, Henry Pyrgos (capt); Alex Allan, Corey Flynn, D'arcy Rae, Tim Swinson, Brian Alainu'uese, Rob Harley, Simone Favaro, Richie Vernon.
Replacements: Pat MacArthur, Jamie Bhatti, Sila Puafisi, Scott Cummings, Chris Fusaro, Nemia Kenatale, Brandon Thomson, Ratu Tagive.
Dragons: Tom Prydie; Pat Howard, Adam Warren, Tyler Morgan, Sam Beard, Adam Warren; Angus O'Brien, Sarel Pretorius; Sam Hobbs, Elliot Dee, Brok Harris, James Thomas, Rynard Landman, Ollie Griffiths, Nic Cudd, Lewis Evans (capt).
Replacements: Rhys Buckley, Thomas Davies, Lloyd Fairbrother, Matthew Screech, Harrison Keddie, Charlie Davies, Dorian Jones, Will Talbot-Davies.
Referee: Andrew Brace (Ireland)
Assistant referees: David Wilkinson (Ireland), Dunx McClement (Scotland)
TMO: Brian MacNeice (IRFU).