Jonny Gray marked his 100th Glasgow appearance with his best performance of the season and the man of the match award as the Warriors overcame Ulster to stay on course for a home Guinness PRO14 play-off.
Gray was central in Glasgow’s superb setpiece performance, forcing five scrum penalties and a series of lineout steals which laid the platform for the victory, Zander Fagerson’s try early in the second half securing the bonus point.
It was certainly the reaction demanded by head coach Dave Rennie after their embarrassment at Saracens last week, building a strong lead with the strong wind in the first half and then managing to shut Ulster out against the elements in the second half.
Fraser Brown, Adam Hastings and Tommy Seymour had Glasgow’s first-half tries, and there were encouraging performances especially from Gray and Stuart Hogg, who looked lively and threatening throughout.
Glasgow took the typically strong Scotstoun breeze at their backs in the first half but while Ulster were forced to play ball in hand, they made a pretty decent fist of it until the Warriors gained the key score on the stroke of half-time.
Both sides lost unwise offloads in the first few minutes but it was Ulster who attacked best with full-back Michael Lowry felled by a high tackle from Seymour that allowed Billy Burns to kick to the corner.
Glasgow got the shove on at the lineout maul but Ulster hooker Rob Herring deftly darted off the back, smashing past two defenders to get the ball down for the try, John Cooney converting.
The Warriors started using the elements in their favour with long kicks and got reward almost immediately when they forced a penalty with Ulster on the retreat.
They too went for the corner and the maul drive from five metres was efficiently worked, Brown going over for the equalising score, converted by Hastings.
And five minutes later after two Gray lineout steals the Warriors attacked with purpose, Kyle Steyn straightening the line well on a Hastings pass and the stand-off there to take the ball at the next phase and fight his way over the line.
That went unconverted, but Hastings did land a penalty from near halfway when the Warriors had Ulster struggling and infringing at the scrum.
The visitors seemed to have survived the rest of the half well but a clumsy Cooney knock-on when they were attacking in the Glasgow 22 was to prove massively costly.
Glasgow won a penalty off the scrum, booted it downfield and after a patient spell of phases and half-breaks by centres Steyn and Sam Johnson, Hastings and Stuart Hogg combined beautifully to put Seymour in for the score in the corner with the clock in the red.
Hastings hit the post with the wide out conversion but 20-7 looked a pretty good return for the advantage of the elements.
It looked even better four minutes into the second half, Stuart McCloskey’s long kick from his own half going dead in-goal at the other end, and a swift attack off the scrum brought reward.
Skipper Chris Fusaro made a handy half-break to get in behind the Ulster defence, Johnson and Ali Price carried on and Zander Fagerson took his scrum-half’s off-load to barrel over the line for the bonus try, Hastings converted.
Ulster’s chance to hit back was lost when Luke Marshall fumbled over the line after Jacob Stockdale made a brilliant offload in the tackle to free him, Seymour getting a hand in to force the knock-on, and Glasgow escaped with another scrum penalty.
And at the other end Billy Burns fumbled a routine pass in his own half, Steyn snared him and the penalty was inevitable, Hastings stretching Glasgow out to a commanding 30-7 lead.
Another last-gasp tackle from Seymour prevented Rob Lyttle from gaining Ulster some consolation as Glasgow played out the half against the wind without conceding.
Glasgow Warriors: S Hogg; T Seymour, K Steyn, S Johnson, N Matawalu; A Hastings, A Price; O Kebble, F Brown, Z Fagerson; R Harley, J Gray; A Ashe, C Fusaro (capt), M Fagerson.
Replacements: G Stewart for Brown 66, J Bhatti for Kebble 33, S Halanukonuka for Z Fagerson 66, S Cummings for Ashe 60, T Tameilau for Fusaro 67, G Horne for Price 63, P Horne for Hastings 60, R Nairn for Seymour 71.
Ulster: M Lowry; R Lyttle, L Marshall, S McCloskey, J Stockdale; B Burns, J Cooney; E O’Sullivan, R Herring, M Moore; A O’Connor (capt), K Treadwell; S Reidy, J Murphy, M Coetzee.
Replacements: J Andrew for Herring 45, A Warwick for O’Sullivan 45, T O’Toole for Moore 62, I Nagle for Treadwell 53, M Rea for Coetzee 67, D Shanahan for Burns 60, D Cave for McCloskey 57, A Kernohan for Lowry 21.
Ref: S Berry (SARU)