Glasgow Warriors ran in six tries to see off Benetton in an enthralling contest and stay in touch of the Pro14 play-off places.
Sam Johnson and Peter Horne scored early tries, while George Horne touched down either side of the interval.
Hame Faiva, Abraham Steyn and Antonio Rizzi crossed for the hosts.
But the Warriors were rewarded for their fierce defence and adventure in attack with late scores from Nikola Matawalu and Andrew Davidson.
A fifth win from 10 league outings lifts Dave Rennie's team into third place in Conference A but they will drop back to fourth if Cheetahs win at struggling Zebre.
The visitors lost Nick Grigg in the second half, with the centre carried off after a clash of heads with mighty prop Cherif Traore.
That will be an obvious concern for Rennie, who will be pleased with the appetite for the battle shown by his men after a win and a loss in two bruising games with Edinburgh over the festive period.
Johnson struck early, carrying over after a Kyle Steyn gallop down the right wing and Steyn was involved again soon after as Peter Horne had the strength to get through two tackles.
The hosts hit back from 12-0 down, with a chaotic maul finished off by Faiva and there followed a period of sustained pressure from the Italians. However, a breathless passage resulted in Glasgow holding firm and extending their lead.
Impressive work from the pack allowed the Horne brothers to combine, with scrum-half George dotting down near the posts.
Benetton came roaring back and were camped on the try-line for an extended period before Aki Seiuli was sent to the sin-bin by referee Nigel Owens after a fourth successive scrum infringement.
The hosts were then able to make their advantage in personnel count as Abraham Steyn drove through a heap of bodies to force the ball onto the whitewash and Glasgow went into the interval 19-12 up.
There was a let-off for the visitors early in the second half when Steyn lost control of the ball when plunging in from close range.
Rennie had rested several key men with next weekend's European Champions Cup meeting with Exeter Chiefs in mind and Bruce Flockhart was among those taking his chance to shine.
The flanker found a gap near halfway and had George Horne on his shoulder. Then it was a race for the corner and a second try for the scampering scrum-half.
An immediate response followed, with more scrambling Glasgow defence and a turnover inches from the scoring zone but Rizzi then conjured something out of nothing to waltz through for Benetton's third score.
Grigg was carried off on a stretcher and Peter Horne missed a simple kick to touch but those setbacks were quickly forgotten about as Matawalu danced in between two opponents to score from a huge, looping pass from Glenn Bryce on 75 minutes.
Moments later, Davidson was gifted his first try for the Warriors, the replacement lock picking off a panicked offload from Ratuva Tavuyara.
TEAMS
Benetton: Jayden Hayward, Leonardo Sarto, Ratuva Tavuyara, Luca Morisi, Monty Ioane, Tommaso Allan, Dewaldt Duvenage (capt), Abraham Steyn, Giovanni Pettinelli, Sebastian Negri, Federico Ruzza, Irne Herbst, Marco Riccioni, Hame Faiva, Nicola Quaglio
Replacements: Engjel Makelara, Cherif Traore, Tiziano Pasquali, Niccolo Cannone, Eli Snyman, Marco Lazzaroni, Tito Tebaldi, Antonio Rizzi
Glasgow Warriors: Ruaridh Jackson, Kyle Steyn, Nick Grigg, Sam Johnson, Niko Matawalu, Pete Horne, George Horne, Aki Seiuli, George Turner, Adam Nicol, Rob Harley, Tim Swinson, Bruce Flockhart, Tom Gordon, Ryan Wilson.
Replacements: Grant Stewart, Oli Kebble, Petrus du Plessis, Andrew Davidson, Chris Fusaro, Nick Frisby, Huw Jones, Glenn Bryce