Glasgow registered their ninth Pro12 victory of the season at wet and windy Scotstoun Stadium.
Bottom-of-the-table Connacht were ahead at the interval with two penalties from Craig Ronaldson edging out Mark Bennett's try for the home side.
Warriors fly-half Ruaridh Jackson knocked over a second-half penalty to put the hosts in front.
And that was the end of the scoring on a wretched afternoon as Glasgow stay fifth in the table.
Connacht centre Ronaldson missed a penalty chance from four metres in his own half in the third minute but in the eighth he struck a much easier one home to open the scoring.
Glasgow then took the lead with a superb score engineered by scrum-half Henry Pyrgos.
Breaking from a ruck just over halfway and after a long run, he struck the perfect kick to his right for centre Bennett, who gathered the slippery ball and went over for an unconverted try.
But, with play continuing to be confined to the Glasgow half by the elements, Connacht moved ahead again thanks to a penalty from in front of the posts by Ronaldson after an infringement from Glasgow tighthead prop Ed Kalman.
This followed a couple of missed efforts by Ronaldson in the 24th and 29th minutes and Glasgow having resisted a long period of pressure under their bar, sparked by good work from Connacht's George Naoupu and John Muldoon after Glasgow spilled possession.
It took less than two minutes of the second half for Glasgow to retake the lead. A 20-metre break by lock Leone Nakarawa produced a simple penalty for Jackson to kick.
Soon after, with the pattern of the first half replicated only Glasgow now had the wind advantage, Jackson failed with a long drop-goal effort.
Glasgow replaced their complete front row 10 minutes into the second period but penalty offences in the tight scrum continued to dog their efforts.
As the third quarter finished Connacht brought on old Glasgow favourite Dan Parks to a rousing reception.
With 10 minutes to go Jackson failed with a long-range penalty kick and three minutes later missed again with a much closer effort.
Glasgow Warriors: Niko Matawalu, Lee Jones, Richie Vernon, Mark Bennett, Rory Hughes; Ruaridh Jackson, Henry Pyrgos; Gordon Reid, Pat MacArthur, Ed Kalman, Leone Nakarawa, Tom Ryder, Rob Harley, Tyrone Holmes, Josh Strauss (capt).
Replacements: Dougie Hall, Jerry Yanuyanutawa, Jon Welsh, James Eddie, Fraser Brown, Murray McConnell, Finn Russell, Scott Wight.
Connacht: Robbie Henshaw; Fionn Carr, Eoin Griffin, Craig Ronaldson, Matt Healy; Jack Carty, Kieran Marmion; Denis Buckley, Jason Harris-Wright, Rodney Ah You; Mick Kearney, Andrew Browne; John Muldoon (capt), Jake Heenan, George Naoupu.
Replacements: Dave Heffernan, Ronan Loughney, JP Cooney, Michael Swift, Aly Muldowney, Paul O'Donohoe, Dan Parks, Darragh Leader.