Glasgow turned in an impressive second-half display to come from behind and beat Ospreys on Magners League duty.
Richie Vernon and Kevin Tkachuk added to Richie Gray's first half try as the home side poured forward in relentless waves at Firhill.
Stand-off Ruaridh Jackson and his replacement Duncan Weir kicked the rest of the Glasgow points.
Scotland winger Nikki Walker powered in for two first-half scores and claimed an Ospreys hat-trick at the death.
Despite the achievement, Walker and his team-mates were not smiling when the final whistle sounded, since they had been swept aside in a match they looked favourites to win at half-time.
Walker was too hot for the hosts to handle in the first 40 minutes, twice brushing opponents aside to crash over the line.
Glasgow missed a great chance to reply to Walker's first touchdown when Bernardo Stortoni fumbled the final pass of a fine, flowing move. However, Gray did get on the scoreboard with a neat try.
Showing incredible nimbleness for a hulking second-row, he jinked away from a couple of challenges to speed away and bring the hosts back into the game.
With three minutes of the half left, Dougie Hall was pulled down inches short and Gray and Moray Low were held up before Ospreys Ryan Jones collected a yellow card for a professional foul.
With Dan Biggar and Jackson trading kicks, the Welsh visitors took a 16-11 lead into the interval.
While the action in a scrappy first half ebbed from one end of the pitch to the other, the second period was one-way traffic.
Ospreys were pinned back for long spells as Glasgow found their passing range and stepped up their level of aggression.
Having seen Alastair Muldowney held up on the score-line on 51 minutes, Jackson reduced the deficit to two points with a penalty and his replacement Weir fired the home side in front for the first time with another kick, which clipped the inside of a post on its way over.
Ospreys resolve wilted further as Vernon bundled his way through for a try, while the same player and Stortoni were both later thwarted within inches of a score.
The fierce Glasgow attacks continued and late replacement Tkachuk made sure of the points that lift Glasgow up to 10th in the table, with Ospreys staying fifth.
Glasgow: Stortoni, Shaw, M. Evans, Morrison, Dewey, Jackson, Gregor, Welsh, Hall, Low, Gray, Muldowney, Harley, Barclay, Vernon. Replacements: Horne for Dewey (49), Weir for Jackson (61), Tkachuk for Welsh (77), Thomson for Hall (36), Kalman for Low (41), Forrester for Muldowney (57), Ryder for Harley (64). Not Used: Pyrgos.
Ospreys: Byrne, N. Walker, Bowe, Hook, Fussell, Biggar, M. Phillips, James, Bennett, A. Jones, Gough, Evans, Collins, Tipuric, R. Jones, Prydie. Replacements: Prydie for Byrne (13), Nutbrown for M. Phillips (60), Bevington for James (41), M. Davies for Bennett (52), Mitchell for A. Jones (41), Goode for Gough (77), Holah for Tipuric (52), Parker for Prydie (64).
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.