Back
The visitors went into half-time 10-0 down after a disappointing first-half display.
They squandered several attacking opportunities and were scythed open by Benetton fly-half Jacob Umaga, who released centre Federico Zanandrea for the game's first try.
Umaga also kicked a penalty before the break and when Louis Lynagh intercepted Matthew Urwin's pass to score under the posts on 42 minutes, Benetton appeared to be cruising to victory.
However, Glasgow responded in fine style, scoring three tries in eight minutes to level the scores.
Euan Ferrie went over off the back of a trademark rolling maul, captain Kyle Steyn crossed in the corner after some good hands and Rory Darge finished off a sweeping team move started by Steyn.
Umaga nudged Benetton back into the lead off the tee, but with time running out, lock Jare Oguntibeju crashed over from close range for Glasgow's fourth try.
It proved to be the decisive blow as Franco Smith's side navigated the final moments for a hard-fought win.
Warriors are second in the URC table, behind Edinburgh, after three wins and a draw, while Benetton sit 15th.
Replacements: Siua Maile, Ivan Nemer, Marcos Gallorini, Piero Gritti, Antony-Italo Miranda, Manuel Zuliani, Louis Werchon, Paolo Odogwu.
Replacements: Gregor Hiddleston, Nathan McBeth, Murphy Walker, Alex Craig, Jare Oguntibeju, Gregor Brown, Callum Reidy, Bayley Kuenzle.