The visitors led 10-6 at the break but Finn Russell's double and tries for Stuart Hogg and Richie Vernon saw Glasgow score 26 unanswered points to record a 32-10 victory at Scotstoun, with the final-four rematch set for Friday night.
Munster joined the Warriors in the top two as Conor Murray's hat-trick inspired the hosts to a 50-27 bonus-point win against Newport Gwent Dragons at Irish Independent Park.
The Dragons crossed over four times to secure a bonus-point of their own and led early on before the Munstermen blitzed clear, with Paul O'Connell, Keith Earls, Ronan O'Mahony, CJ Stander and Andrew Smith also touching down.
Having led going into the final round, Ospreys slipped to third and will play Munster in Saturday's semi-final at Thomond Park, despite a hard-fought 24-20 victory over Connacht at the Sportsground.
Tries from Rhys Webb, Ben John and Dan Biggar put the visitors 24 points clear at the interval, only for Pat Lam's side to rally through scores from Dennis Buckley and Eoghan Masterson to secure seventh place and a European play-off spot.
Despite missing out on the top four for the first time in 11 years, Leinster ended their campaign on a high with a 36-23 win against Edinburgh at BT Murrayfield, thanks to late tries from Jordi Murphy and Luke McGrath.
Hamish Watson and Tim Visser, on his last GUINNESS PRO12 appearance, crossed over as Edinburgh cancelled out Noel Reid, Jack Conan and Zane Kirchner's tries to lead inside the final ten minute before Leinster's late show secured the bonus point.
The final European Rugby Champions Cup spot went to Scarlets as Steffan Evans' late try helped the Welsh side edge past Benetton Treviso with a 17-13 win at Stadio Monigo.
Davide Giazzon and Jayden Hayward dotted down to give the hosts a 13-3 lead at the interval, before Scarlets hit back through Liam Williams and then Evans to wrap up sixth place.
Yet a losing bonus point was enough to see Treviso join Scarlets in Europe's top tier next year after Italian rivals Zebre were downed 29-5 by Cardiff Blues at BT Sport Cardiff Arms Park.
Alex Cuthbert's double and tries from Gethin Jenkins, Rhys Patchell and Garyn Smith helped Cardiff end a mixed season in style, with the visitors only able to respond through Valerio Bernabo.
TRY OF THE WEEKEND
A high-scoring clash between Munster and Newport Gwent Dragons saw 12 tries scored overall, but Ronan O'Mahony provided the most memorable moment with a sublime solo effort for the hosts.
The Munster wing carved an exquisite angle to collect an inside ball, gliding through a gap in the Dragons line to burst clear and dive over.
BREAK OF THE WEEKEND
Glasgow Warriors still needed three tries to secure a vital bonus point against Ulster when Finn Russell provided a moment of magic to spark his side's second-half onslaught.
The Scotland fly-half dummied and stepped through a gap, before showing his strength to break the covering tackles and touch down, adding his second soon after with another neat move.
PLAY OF THE WEEKEND
Sean O'Brien may have more of a reputation as a wrecking ball but the Leinster flanker showed deft hands to set up Noel Reid's try with a brilliant piece of improvisation.
The Ireland international drew two Edinburgh defenders in midfield, only to flick the ball out the back of his hand to find Reid scything through the resulting gap and surging clear to cross over.
PLAYER OF THE WEEKEND
Conor Murray may have been at his controlling and sniping best to score a hat-trick in Munster's bonus-point victory over Dragons but player of the weekend goes to Finn Russell for his superb 22-point showing in triumph over Ulster.
The fly-half scored two well-taken tries and nailed three conversion and two penalties to lead Glasgow Warriors in a thrilling second-half blitz that carried them to the summit of the GUINNESS PRO12 and a home semi-final.
Follow us on Facebook, join the conversation on Twitter, sign up to our YouTube channel for extensive match highlights and sign up for our newsletter for regular updates on the GUINNESS PRO12