An under-strength Ulster maintained their 100% record in the Pro12 with an unimpressive win over Zebre in Parma.
The leaders were outscored four tries to two by the bottom side but snatched victory with a late penalty try.
Zebre earlier punished a slack Ulster with tries from number eight Andries Van Schalkwyk (two), and half-backs Tito Tebaldi and Daniel Halangahu.
Paddy Wallace edged Ulster ahead with a 58th-minute try but Zebre got their noses in front until the penalty try.
Ulster had been putting Zebre under pressure close to the line and referee Neil Patterson penalised the home side, believing they had stood up at a scrum when a try would otherwise have been scored.
That levelled the game at 25-25 and fly-half Niall O'Connor, who had a decent day with the boot, had the simple task of sealing the victory with the conversion in front of the posts.
Ulster had 15 players unavailable because of the autumn internationals, but they still would have been expected to account for Zebre, who themselves had a number of key absentees.
But the visitors were almost the authors of their own misfortune as a number of mistakes were punished by the Italian side.
The first came just after O'Connor had kicked the first points of the match with a penalty.
From the restart, South African Van Schalkwyk claimed the ball and fed scrum-half Tebaldi who ran through to touch down.
Two more O'Connor penalties had the Irish province 9-5 in front but a reply from the boot of home fly-half Halangahu reduced the gap to a single point at the interval.
After the break Halangahu took Tebaldi's flicked pass for Zebre's second try of the match.
O'Connor tagged on another penalty to leave Ulster just 13-12 behind but Van Schalkwyk got in at the left corner for another home try.
A fine Ulster attack then saw full-back Ricky Andrew and winger Michael Allen set up Wallace for a try in the right corner.
O'Connor had the chance to put Ulster ahead but his conversion attempt struck the near upright and left them trailing 18-17.
But when home centre Matteo Pratichetti was sin-binned for not rolling away, O'Connor kicked the penalty for a 20-18 lead.
However, Ulster were guilty again of poor reception at the restart and Zebre launched another attack deep in opposition territory.
It ended with Van Schalkwyk getting in behind the posts after a five-metre scrum and Halangahu added the simple conversion for 25-20.
That is how it stood until Ulster's late pressure forced the penalty try which ultimately decided the outcome.
Zebre: Odiete, Sarto, Pratichetti, Pace, Castagnoli, Halangahu, Tebaldi, Aguero, Manici, Redolfini, Sole, Cazzola, Ferrarini, Cristiano, van Schalkwyk.
Replacements: De Marchi, Perugini, Tripodi, Caffini, Belardo, Chillon, McCann, Cattina.
Ulster: Andrew, Allen, Payne, Wallace, Cochrane, O'Connor, Heaney, Black, Brady, Afoa, Diack, McComb, Williams, McComish, Wilson.
Replacements: Herring, Court, Fitzpatrick, Simpson, Birch, McIlroy, Olding, Nelson.
Referee: Neil Patterson (SRFU)