Ulster returned from two highly successful weekends of European action by continuing their winning streak in the RaboDirect PRO12, but it was a far from convincing effort as they struggled against Zebre and the difficult conditions before claiming a 13-6 victory.
Fresh from back-to-back thrashings of Treviso in the Heineken Cup, Ulster battled from 6-0 down to record their firth successive win in all competitions and they seventh victory in 10 league games.
The hosts recovered from their early deficit thanks to a try from Jared Payne and a conversion and two penalties from Ruan Pienaar, but Zebre thoroughly deserved their losing bonus point.
In tricky conditions due to a swirling wind and rain Zebre adjusted to the conditions better in the first half and made the first inroads on the scoreboard when Luciano Orquera landed a fourth-minute penalty.
He could not land his second attempt from further out five minutes later.
But after Orquera went off for attention after he was hauled down near the Ulster line, Tommaso Iannone stepped up and sent over a 15th-minute penalty after Ulster were penalised at a scrum.
Ulster finally made their presence felt just before the half-hour mark when Payne hit the line off a James McKinney flat pass and beat four defenders with a mazy run to score under the posts.
Pienaar added the extras to give Ulster the lead for the first time at 7-6, which they held until half-time despite another dangerous flurry from Zebre.
Ulster, though, upped the pressure after the restart and Piennar kicked a 48th-minute penalty to make it 10-6.
The hosts still struggled to shake off their opponents and only in the 72nd minute did they score again when Pienaar landed his second penalty.