The game was in the balance right to the end but Glasgow’s Sean Lamont put it out of sight on 78 minutes when he crossed for his side’s fourth try.
Pat Lam’s side started strongly and were ahead at the break following tries from Niyi Adeolokun and John Muldoon but the Warriors came roaring back in the second half to secure the win.
Connacht made all their early pressure count when wing Adeolokun crashed over in the right corner after four minutes, before Glasgow had even touched the ball. Tiernan O’Halloran’s break had put Adeolokun in space.
However, the home side hit back immediately, with the returning Finn Russell kicking a penalty shortly after the restart.
And Gregor Townsend’s men got their noses in front moments later when hooker Corey Flynn crashed over, Russell adding the extras.
But Connacht hit back through a Craig Ronaldson penalty, before captain Muldoon crossed the white line in the left corner following a perfectly timed offload from wing Stacey Ili. The move started with an impressive offload from Jake Heenan, on his 50th appearance for the province, and notable breaks from locks Quinn Roux and Andrew Browne.
Ronaldson landed a difficult conversion kick to make it 15-10, before Russell added another three points from the tee to cap off a breathless first half.
Half time: Glasgow 13 – 15 Connacht
The visitors landed the first blow of the second period through a Ronaldson penalty after Glasgow failed to release, but the home side seized the game by the scruff of the neck after that.
Russell crossed immediately after the restart, and stepped up to convert his own score and put the home side into the lead.
And Connacht were put at a disadvantage on 53 minutes when Jack Carty was sin-binned for a high tackle.
Warriors won a penalty in front of the posts and opted for a scrum, which they powered back over the Connacht line and allowed Ali Price to squirm over, with Russell adding the extras.
Despite being a man down, Connacht rallied and looked to have scored through Adeolokun in the right corner, only to be denied by TMO after a Price tackle bundled the wing into touch.
But Glasgow were reduced to 14 men 15 minutes from time when Tim Swinson was dismissed for a swinging arm at the ruck on Dave Heffernan in the build up to Adeolokun’s effort, and Ronaldson kicked the resulting penalty to close the gap to just six points.
But Connacht could not capitalise on the numerical advantage, and Glasgow stretched their lead back to nine through Peter Horne’s penalty, before replacement scrumhalf John Cooney cancelled this out for Connacht.
Veteran wing Lamont powered over late on to seal a dramatic win for Townsend’s men at a sold out Scotstoun Stadium.
Full time: Glasgow 35 – 24 Connacht