Three Tommy Seymour tries helped secure a bonus-point win over Treviso that boosts Glasgow's play-off chances.
Treviso's Mat Berquist and Warriors' Finn Russell traded penalties in an untidy opening period.
But two Seymour tries and a monster Mark Bennett penalty put the visitors 19-9 ahead at the break.
Gordon Reid touched down in the corner after the restart and Seymour added a superb solo score before a late penalty try was awarded to Treviso.
With Glasgow having already secured a top-four place following Ospreys' defeat by Zebre, they were looking for wins over Treviso and the other Italian side, Zebre, in their final two matches to secure a home match in the Pro12 play-offs.
The win over Treviso, combined with leaders Leinster's win away to Ulster, means Warriors sit second, four points adrift and six ahead of Munster, who have a game in hand.
In an Italian downpour, Glasgow were contained in their own half for the first 11 minutes and, although Treviso did not threaten the visitors' try line, the inevitable penalty infringement gave Berquist a simple opportunity to kick the opening points.
However, Warriors put pressure on the home scrum immediately from the restart and Russell's fine kick from wide on their right levelled the scores.
Just when a superb run from Angelo Esposito pushed Treviso dangerously into Glasgow territory, a home handling error allowed Seymour to intercept and the winger played some soccer along the turf, kicking ahead three times before beating the chasing defence behind the posts.
Russell added the two points, but Glasgow were immediately pegged back when they gave away a penalty for holding in the ruck after the restart and Berquist reduced the deficit despite slipping as he kicked.
The infringement tennis continued in the slippery conditions as Glasgow won a penalty at the other end for offside and Russell's long kick went straight through the posts.
Play was scrappy, with Treviso having adopted an uncharacteristic kicking game, matched by Glasgow, and Berquist took advantage of another penalty to bring his side back to within four points from long range.
Russell spoiled the 100% success rate with the first miss of the night from wide on Glasgow's left, but another infringement in the scrum allowed the fly-half to make up for that from the other flank.
When Luke McLean, who will make a summer move to Sale Sharks, was next to be penalised five yards inside the Glasgow half, Bennett launched a monster kick to give the visitors a 10-point advantage at the break.
Warriors built on that at the start of the second half when Peter Horne's long pass out wide found Seymour, who managed to cross the line despite the attentions of three defenders, with Russell's conversion attempt shaving the inside of the post.
Scotland full-back Stuart Hogg, back in the side after being banned for the last three matches, combined with Niko Matawalu to send prop Reid powering towards the corner and over the line.
Fellow forward Tyrone Holmes was shown a yellow card as Treviso applied some pressure on the Warriors line after 54 minutes.
However, thoughts of a home comeback were ended when Seymour scored from inside his own half, chipping over Berquist and holding off McLean before sliding over the line, with Russell converting once more.
Glasgow's Rob Harley was yellow carded with five minutes remaining with Treviso camped five metres from the visitors' line.
A penalty try was eventually handed to the eager home side, with James Ambrosini adding the conversion, but they remain below Zebre at the bottom of the overall standings.
Benetton Treviso: Williams, Nitoglia, Campagnaro, McLean, Esposito, Berquist, Botes, De Marchi, Ghiraldini, Cittadini, Pavanello, Fuser, Vosawai, Derbyshire, Filippucci. Replacements: Sgarbi for Williams (51), Ambrosini for Berquist (75), Semenzato for Botes (60), Maistri for Ghiraldini (60), Fernandez-Rouyet for Cittadini (60), Budd for Derbyshire (60), Bernabo for Filippucci (64). Not Used: Muccignat.
Glasgow Warriors: Hogg, Seymour, Bennett, Horne, Matawalu, Russell, Pyrgos, Reid, MacArthur, Cross, Swinson, Gray, Harley, Holmes, Strauss. Replacements: S. Maitland for Hogg (60), Jackson for Russell (60), Grant for Reid (58), Brown for MacArthur (58), Welsh for Cross (58), Nakarawa for Gray (54), Fusaro for Holmes (71). Not Used: Cusack. Sin Bin: Holmes (55), Harley (76).
Ref: George Clancy (Ireland).