Pro12 leaders Ulster made hard work of securing a bonus-point victory over basement side Zebre at Ravenhill.
Rob Herring went over for an early Ulster try but the game became scrappy before Robbie Diack's touchdown in the final minute of the first half.
Ulster led 12-3 at the break and they upped the tempo in the second half, with Diack scoring another try.
The bonus point was clinched on 73 minutes when Ricky Andrew sprinted in from Michael Heaney's pass.
Ulster started and finished the first half strongly but they were frustrated by a resolute Zebre side for most of the opening 40 minutes.
Chris Cochrane went over from an Andrew Trimble off-load only for the television match official to rule that his trailing foot went into touch.
The resulting Zebre line-out was over-thrown with the alert Herring catching before driving over for the opening try on eight minutes.
Ruan Pienaar converted but Ulster failed to build on their lead through a combination of sloppy play and firm Zebre defending.
Daniel Halangahu's first penalty effort fell short although he put the Italians on the scoreboard with a penalty after 34 minutes.
A superb Pienaar kick into the corner set up Ulster's second try in the final minute of the half.
Darren Cave created the space and his pass allowed Diack an easy passage to line before Pienaar pushed the conversion attempt.
Ulster pressed on the restart, helped by the introduction of prop John Afoa following his return from New Zealand.
Iain Henderson claimed a try at the base of a post but the television match official ruled that the flanker was held up short of the line.
The third try finally came on 57 minutes, with Cave again providing the pass for Diack to sprint under posts with Pienaar adding the extras.
The bonus point was secured seven minutes from time, the move starting from a scrum and ending with Andrew charging over from Heaney's pass.
Pienaar slotted over the conversion and despite a sluggish display, the target of a five-point victory had been achieved.
Ulster: Andrew, Trimble, Cave, L. Marshall, Cochrane, Jackson, Pienaar, Court, Herring, Fitzpatrick, Muller, Stevenson, Henderson, Henry, Diack.
Replacements: Olding for L. Marshall (38), Walsh for Cochrane (59), Heaney for Jackson (69), McComb for Court (66), Annett for Herring (66), Afoa for Fitzpatrick (41), Black for Stevenson (69), McComish for Henderson (11).
Zebre: Buso, Sarto, Benettin, Garcia, Sinoti, Halangahu, Chillon, De Marchi, Manici, Redolfini, Van Vuren, Bortolami, Cristiano, Bergamasco, Sole.
Replacements: Chiesa for Benettin (72), Odiete for Sinoti (49), Pratichetti for Halangahu (39), Aguero for De Marchi (48), Festuccia for Manici (51), Fazzari for Redolfini (51), van Schalkwyk for Bortolami (55), Belardo for Cristiano (49).
Ref: Neil Paterson (SRFU).