Looking to build on their first success at Scotstoun Stadium against Connacht, Glasgow started the game slowly with a new-look starting lineup.
And Zebre took an early lead through Luciano Orquera and Gonzalo Garcia penalties and on 13 minutes Leonardo Sarto broke free on the right touchline to set up the fly-half for an easy try.
Sarto was brought down just before the line but Alberto Chillon moved the ball onto Orquera who touched down under the posts.
Ruaridh Jackson had a disappointing first half with the boot, missing a straightforward penalty just right of centre as Glasgow failed to get going.
But just as the visitors were looking comfortable Sinoti Sinoti failed to claim Jackson's high ball and the ball kindly fell to Tim Swinson who touched down for his first Warriors try.
From the restart Filippo Cristiano and Mauro Bergamasco were sent to the bin in quick succession for cynical infringements leaving Zebre down to 13 men.
And although Orquera briefly extended their advantage the Italian side were punished in the 33rd minute when Van der Merwe scored his fifth try in three games despite Sarto's best efforts.
The first-half comeback was complete right on half-time as Van der Merwe showed good awareness to put Graeme Morrison through as the Warriors went in 19-16 ahead.
But it came at a cost with the Canadian flyer pulling up with a hamstring injury forcing him to leave the field, replaced by Scottish international Stuart Hogg.
The Warriors failed to take their momentum through to the start of the second period as an Orquera penalty drew Zebre level early after the restart.
And despite dominating territory and possession for a ten-minute period thereafter, Glasgow spurned a great opportunity to retake the lead on the hour but Tommy Seymour failed to collect the ball out wide.
The hosts finally edged ahead on 71 minutes having won a penalty at the set-piece and up stepped Horne to give his side a slender 22-19 advantage.
Halangahu then squandered a great chance to level the game as his kick sailed agonizingly wide and Glasgow held out for their third win of the season.
|Glasgow Warriors Score Card|
|DTH van der Merwe||1||5|
|Zebre Score Card|