Ulster had bullied Gregor Townsend’s men throughout the early stages and took control midway through the opening period with Chris Henry’s try.
But Glasgow came out fired up for the second half and kept themselves in touch before Scarlets-bound DTH van Der Merwe levelled the scores on his final Scotstoun appearance five minutes from time.
The score sent the 10,000 sell-out crowd into ecstasy but there was still work to be done as Finn Russell lined up the decisive conversion.
However, the Scotland fly-half did not flinch as he booted Warriors towards the Belfast final, where they will now face the the winner of Saturday’s clash between Munster and Ospreys on May 30.
After finishing top of the Pro12 table for the first time in the club’s history, Glasgow believed they could go the extra step and claim the title outright 12 months on from losing to Leinster in the 2014 Dublin final.
Townsend’s side – unbeaten at home since November 2013 – had extra reason to be confident as they squared up to Neil Doak’s side for the second time in six days after securing a home semi-final with last week’s 32-10 win.
But the Belfast XV bulldozed in that final regular season fixture looked little like the side which started the play-off clash.
Doak made 11 changes to his line-up, bringing rested big guns like World Cup-winner Ruan Pienaar and Ireland stalwarts Paddy Jackson and Rory Best back in to face the Scots.
Referee George Clancy was also in no mood to do the home side favours. He waited barely 30 seconds before he punished Glasgow’s first infringement, handing Pienaar a simple kick for the opening points, but Russell squared it soon after with a penalty of his own.
Stuart Hogg was more ambitious but just as capable when he then slotted a monstrous effort over from two yards inside his own half to put Glasgow in front.
However, Ulster were dominating the breakdown and racked up three turnovers in the first quarter hour.
Their aggression soon told as Niko Matawalu found himself double-teamed by Henry and Ludik Louis down Glasgow’s right side, with the Fijian wing left stranded as Henry scampered in for the touchdown.
Pienaar could not add the extras from out wide but there was a further blow for the hosts as skipper Al Kellock – also making his final Scotstoun bow before retiring in the summer – was forced off with a head injury just 20 minutes in, with Leone Nakarawa his replacement.
Warriors looked for an immediate response but wasted decent territory when Ryan Grant was penalised by Clancy after hurrying his scrum engagement.
And the Irish referee made himself even less popular with the home crowd when he let Craig Gilroy off scot-free, despite the Ulster wing being guilty of a blatant bodycheck as Matawalu looked to latch on to Russell’s kick into the corner.
Glasgow looked feistier after the break but their rashness at crucial moments played into Ulster hands. Matawalu’s mazy cross-field run had the Glaswegian faithful on their feet but, in truth, it made barely 10 yards of progress.
Ulster stretched their lead to five with another Pienaar kick but Gilroy survived a second contentious call after another apparent tug on the galloping Matawalu.
The home side’s lineout had been misfiring all night and another erratic Pat MacArthur throw saw yet another chance coughed up two yards from Ulster whitewash.
Russell reduced the deficit with a 61st-minute penalty but Pienaar wiped those gains out with another huge kick from wide left.
The Scots’ surge finally came with five minutes left. Ulster repelled wave after wave but Glasgow stayed cool and, with the visitors stretched, Russell sprayed a 20-yard pass out to Van der Merwe, who squeezed over in the corner for his 40th Warriors try.
The try locked the scores at 14-14 but Russell showed nerves of steel to slot over the winning kick from wide to keep Glasgow dreams of a maiden title alive.
Tries: van der Merwe. Cons: Russell. Pens: Russell 2, Hogg.
Hogg, Seymour, Vernon, Horne, Matawalu, Russell, Pyrgos, Grant, Brown, de Klerk, Gray, Kellock, Strauss, Fusaro, Ashe.
van der Merwe for Seymour (67), S. Lamont for Horne (70), Weir for Matawalu (78), Reid for Grant (45), MacArthur for Brown (20), Cusack for de Klerk (53), Nakarawa for Kellock (20), Wilson for Fusaro (41).
Tries: Henry. Pens: Pienaar 3.
Ludik, Bowe, Payne, D. Cave, Gilroy, P. Jackson, Pienaar, Black, Best, R. Lutton, Stevenson, Tuohy, Henderson, Henry, Wilson.
McCloskey for D. Cave (76), Warwick for Black (71), Diack for Stevenson (76), Reidy for Henry (77).