Glasgow Warriors illustrated their play-off credentials by beating Ulster and moving up to third in the Pro12 table.
The visitors had looked in control when Paddy Jackson's kicks put them 9-3 up.
But Sean Maitland's converted try before half-time and another from Tommy Seymour in the second half gave the hosts a healthy advantage.
And Mark Bennett's converted score rounded off a deserved win for Gregor Townsend's side.
The Warriors move onto 64 points - one behind Ulster - but Munster can overtake both sides if they win at Connacht on Saturday evening.
An early burst by Maitland had the home fans on their feet but Ulster managed to contain the Scotland international.
Jackson's first penalty attempt for the visitors - from halfway - slipped wide and before long Glasgow were on the offensive again.
Ulster infringed and Finn Russell kicked Warriors into the lead.
However, Jackson soon knocked over a straightforward kick from similarly close range.
Mark Anscombe's team began to prey on Glasgow's indiscipline and this yielded two further successful Jackson penalties and a yellow card for Ryan Wilson.
Jackson's next effort from distance rebounded back off the upright and Warriors were soon testing Ulster's defensive resolve.
A break by Bennett opened up space for Peter Horne on the right but Glasgow were again frustrated near the try line as Luke Marshall and Andrew Trimble averted the danger.
Undeterred, the home side kept pressing and Russell off-loaded for Maitland to cross before the former added the conversion.
Ulster's frustrations continued at the start of the second period when Sean Doyle was sin-binned and Russell extended his record with the boot.
A rolling maul was the catalyst to Glasgow's next try, Seymour going over. Russell added the extras.
The television match official was consulted after Ulster's Nick Williams tried to force the ball over but no try was given.
At the other end, the speedy Bennett powered to the line before stretching out to touch down. The TMO was called again and on this occasion awarded the score.
Warriors sensed a bonus-point opportunity but could not get a fourth try in the final 10 minutes.
Glasgow: Murchie, S. Maitland, Bennett, Horne, Seymour, Russell, Cusiter, Reid, Hall, Welsh, Swinson, Gray, Strauss, Fusaro, Wilson.
Replacements: Jackson for S. Maitland (77), Vernon for Horne (76), Matawalu for Seymour (74), Grant for Reid (50), MacArthur for Hall (59), Cross for Welsh (60), Nakarawa for Gray (60), Harley for Fusaro (65). Sin Bin: Wilson (29).
Ulster: R. Andrew, Bowe, Cave, L. Marshall, Trimble, P. Jackson, P. Marshall, Court, Herring, R. Lutton, Muller, Henderson, Henry, Doyle, Williams.
Replacements: Gilroy for Bowe (75), Heaney for P. Marshall (75), Annett for Court (68), Warwick for R. Lutton (65), McComish for Muller (69), Stevenson for Henderson (71). Not Used: Fitzpatrick, McKinney. Sin Bin: Doyle (43).
Ref: John Lacey (Ireland)