A late try from Newport Gwent Dragons replacement winger Ross Wardle, converted by Rhys Jones, saw the home side dent Glasgow's Pro12 play-off hopes at Rodney Parade.
The highlight of the game was visiting scrum-half Niko Matawalu's solo score from his own 22, which added to Rob Harley's early try.
But the Welsh side hit back with scores from Owen Evans, Cory Hill and Wardle.
The result keeps the Dragons in touch with the Scarlets in sixth place.
Glasgow, who had won on their three previous Pro12 trips to Wales this season, were gifted a third-minute lead when Harley charged down a Jason Tovey clearance and crossed unopposed. Finn Russell added the conversion.
Tovey and Mark Bennett then exchanged penalties before the Dragons drew level on 15 minutes. Andrew Coombs, fresh from Wales duties, provided a superb off-load to Matthew Pewtner, who sent prop Evans charging over.
Referee Matteo Liperini contributed a comedy moment by calling for the non-existent TMO before confirming the try, with Tovey converting.
It was the fly-half's last contribution, though, as he limped off to be replaced by Dorian Jones - son of assistant coach Kingsley - who joined brother Rhys on the field.
As both sides tried to play with high tempo, it was Glasgow who struck next with a brilliant 80-metre solo score from Fijian Matawalu on the counter-attack. Russell converted to give the visitors a 17-10 lead at the break.
The Dragons' veteran former England prop Duncan Bell, called out of retirement at the age of 39, earned noisy applause when he departed after 45 minutes to be replaced by Bruce Douglas, the former Scotland prop on loan from Bristol.
The entertainment level dropped in the third quarter with only a Russell penalty troubling the scoreboard.
But the Dragons hauled themselves back into the game on 66 minutes when Richie Rees sent lock Cory Hill galloping over in the corner, Rhys Jones adding the extras from wide out after missing a simpler penalty attempt.
Russell's second penalty gave Glasgow a six-point advantage but replacement Dragons winger Wardle pounced on a defensive blunder to run in from 20 metres. Rhys Jones then landed the difficult angled conversion to give the Dragons the lead for the first time.
Russell was just short with a long-distance penalty and the Dragons defence held out for a thrilling victory.
Newport Gwent Dragons: Rhys Jones; Matthew Pewtner, Pat Leach, Ashley Smith, Will Harries; Jason Tovey, Richie Rees; Owen Evans, T. Rhys Thomas, Duncan Bell, Andrew Coombs (capt), Cory Hill, Jevon Groves, Nic Cudd, Lewis Evans.
Replacements: Hugh Gustafson, Phil Price, Bruce Douglas, Matthew Screech, Ieuan Jones, Wayne Evans, Dorian Jones, Ross Wardle.
Glasgow Warriors: Ruaridh Jackson; Lee Jones, Richie Vernon, Mark Bennett, Byron McGuigan; Finn Russell, Niko Matawalu; Jerry Yanuyanutawa, Dougie Hall, Mike Cusack, Leone Nakarawa, Jonny Gray, Rob Harley, Tyrone Holmes, Josh Strauss (captain).
Replacements: Fraser Brown, Gordon Reid, Jon Welsh, Tom Ryder, Kevin Bryce, Henry Pyrgos, Folau Niua, Rory Hughes.