Glasgow Warriors consigned bottom side Zebre to a fourth consecutive defeat to narrow the gap on United Rugby Championship leaders Ulster.
But they struggled to build on Lewis Bean's early try or suggest they can be genuine title contenders.
Sione Tuipulotu also powered over for Warriors before half-time, with two Carlo Canna penalties keeping Zebre within striking distance.
Duncan Weir's penalty was all either side could muster after the break.
Glasgow's third win in four URC outings takes them to within five points of Ulster, who defeated Lions on Friday.
However, the lack of a bonus point means they have lost ground on the leaders over the weekend.
Danny Wilson's side started impressively and were ahead within six minutes after lock Bean bundled over from close range, with Weir converting.
Warriors were threatening to sweep aside their hosts as only the TMO's ruling that the ball had been lost in contact prevented another pushover try.
However, Zebre worked their way into the game and, when Bean held on too long in a ruck, fly-half Canna reduced the arrears from the subsequent penalty.
Weir missed a long-range penalty, but Glasgow did extend their lead when centre Tuipulotu exchanged passes with Rufus McLean before sliding over for the visitors' second try - Weir converting again.
Another Canna penalty kept Zebre in the game until half-time and the Italian side came out strongly after the break.
Glasgow had to survive long spells of pressure, while Canna fell short with a long penalty attempt, before Weir's boot added the first points of the second half.
Zebre's late thrust failed to produce a consolation try that would have produced a bonus point.
Zebre: Laloifi, Bruno, Bisegni, Boni, Tuivuaka, Canna, Fusco, Fischetti, Bigi, Nocera, Sisi, Zambonin, Mbanda, Giammarioli, Licata.
Replacements: Fabiani, Lovotti, Bello, Stoian, Andreani, Violi, Pescetto, Cronje.
Glasgow Warriors: Forbes, Cancelliere, Grigg, Tuipulotu, McLean, Weir, G. Horne, Bhatti, Matthews, Kebble, Bean, Gray, Wilson, Darge, Miller.
Replacements: Brown, Thyer, Pieretto, Harley, Gordon, Kennedy, Thompson, McDowall.
Referee: Andrew Brace (Ireland).