Glasgow claimed their first win in four Magners League games on Friday as they defeated Treviso 25-17 at Firhill.
Two early second-half tries was enough to see Glasgow home.
It looked as though the Warriors were to succumb to another disappointing defeat when the Italians opened up an early 10-point lead, but scores from Jon Welsh, Aly Muldowney and Alex Dunbar were enough to see the Scottish team home.
Treviso have surprised many onlookers this year, but despite scores from prop Michael Rizzo and centre Ludovico Nitoglia, they have now won just once in eight attempts.
Glasgow have endured a torrid season and Treviso looked to compound that disappointment when Rizzo opened the try-scoring account, fly-half Willem De Waal converting.
De Waal added to the lead with a penalty but opposite number Duncan Weir reduced the deficit with one of his own to leave the hosts within reach touching distance.
And on the stroke of half-time, they drew level when prop Jon Welsh went over, Weir converting.
Into the second-half and the hosts came out with intent and duly scored two tries in as many minutes. Firstly, lock Muldowney touched down, with the fly-half once again adding the extras, before winger Dunbar scored another five pointer.
Despite the shock of that onslaught, the Italian side hit back almost immediately to bring them to within losing bonus-point territory when centre Nitoglia went over for a converted try.
But a Weir penalty with eight minutes left gave the Scottish side a much needed win and ended their barren run.
Tries: Welsh, Muldowney, Dunbar
Con: Weir 2
Pen: Weir 2
Tries: Rizzo, Nitoglia
Con: De Waal 2
Pen: De Waal
Glasgow: 15 Bernardo Stortoni, 14 Hefin O'Hare, 13 Federico Aramburu, 12 Peter Murchie, 11 Alex Dunbar, 10 Duncan Weir, 9 Colin Gregor, 8 Johnnie Beattie, 7 Ryan Wilson, 6 Rob Harley, 5 Tom Ryder, 4 Aly Muldowney, 3 Moray Low, 2 Fergus Thomson, 1 Jon Welsh.
Replacements: 16 Pat MacArthur, 17 Kevin Tkachuk, 18 Ryan Grant, 19 James Eddie, 20 Chris Fusaro, 21 Henry Pyrgos, 22 Peter Horne, 23 Dave McCall.
Treviso: 15 Brendan Williams, 14 Michele Sepe, 13 Ludovico Nitoglia, 12 Andrea Pratichetti, 11 Benjamin De Jager, 10 Willem De Waal, 9 Tobias Botes, 8 Marco Filippucci, 7 Gonzalo Padrò, 6 Benjamin Vermaak, 5 Corniel Van Zyl, 4 Antonio Pavanello (c), 3 Pedro Di Santo, 2 Franco Sbaraglini, 1 Michele Rizzo.
Replacements: 16 Enrico Ceccato, 17 Matteo Muccignat, 18 Lorenzo Cittadini, 19 Enrico Pavanello, 20 Manoa Vosawai, 21 Simon Picone, 22 Ezio Galon, 23 Andrea Marcato.
Referee: George Clancy (Ireland)