Rob Herring marked his 200th club appearance with a try as Ulster toiled to a bonus-point victory over Benetton.

A forgettable affair on a beautifully still Belfast evening was lit up by three tries in an 11-minute spell just before half-time, while the hosts left it late to grab a fourth try that ensured a maximum 15 points from 15 from their opening three United Rugby Championship games.

Craig Gilroy, Nathan Doak (2) and Herring got the vital scores for Dan McFarland's side but it was anything but a vintage performance.

In total the sides shared 27 turnovers, 25 penalties and two yellow cards, while handling and kicking errors further served to make the game a stop-start affair.

"They made hard work of that," was the opinion of a polite Ulster fan making his way home.

The visitors, who were bidding for a first win over Ulster in 10 years, shaded the opening exchanges, which largely consisted of a midfield kicking contest.

They took the lead through Leonardo Marin's long-range penalty after eight minutes, by which time Ulster had lost prop Andrew Warwick to injury.

The hosts, who were missing eight Ireland internationals through injury, gradually got the upper hand and thought they had taken the lead when Herring, on the occasion of his 200th appearance for the team, barged over after a lineout maul. However, an obstruction made his efforts null and void.

Ulster, who had beaten Glasgow and Zebre in their opening games, then camped in the Benetton 22 but lacked a cutting edge, frustrating errors letting them down at the crucial moment.

The Italians lost prop Ivan Nemer to the sinbin in the 18th minute and McFarland’s side took full advantage.

Out-half Billy Burns, who was replaced at half time after suffering a hamstring injury, spotted some space on the outside and his kick-pass found Ethan McIlroy, who was then beaten to his own chip by Marin.

But another Burn’s cross-kick from the subsequent line-out bounced up perfectly for Gilroy to score the opening try in the 23rd minute.

Just four minutes later Doak combined brilliantly with David McCann to burst free in the 22 for their second, the scrum-half initially showing great speed to clear two defenders before demonstrating no little strength in getting the touchdown.

Herring soon got in on the act, stretching over for his 26th Ulster try after a driving maul, Doak's third conversion making the half-time score 21-3.

The Treviso side, who had also come in with a 100% win record, were off the pace and when they did eventually get inside the opposition 22 at the end of the half, they were stopped on the line as Ulster won a clearing penalty.

Marco Bortolami's side huffed and puffed in a dour third quarter but were eventually rewarded for a sustained spell of pressure when wing Ratuva Tavuyara used his strength to barge over in the corner in the 59th minute, Ulster down to 14 men at the time after James Humes was yellow-carded for slowing down the ball.

The result looked secure but Ulster needed the bonus point and the concession of the try initially appeared to be the hit of snuff they needed.

However, they were turned over on the Benetton line and subsequently toiled between the two 22s until a series of rucks close to the line eventually opened up a gap for Doak, who landed all four conversion attempts in front of watching Ireland head coach Andy Farrell, to exploit.

Ulster: Will Addison; Craig Gilroy, James Hume, Stewart Moore, Ethan McIlroy; Billy Burns, Nathan Doak; Andrew Warwick, Rob Herring, Tom O'Toole; Alan O'Connor, Sam Carter (capt); Matty Rea, Nick Timoney, David McCann.

Replacements: Brad Roberts, Callum Reid, Ross Kane, Mick Kearney, Sean Reidy, David Shanahan, Mike Lowry, Ben Moxham.

Benetton: Rhyno Smith; Ratuva Tavuyara, Marco Zanon, Tommaso Benvenuti, Luca Sperandio; Leonardo Marin, Callum Braley; Federico Zani, Corniel Els, Ivan Nemer; Irné Herbst, Federico Ruzza; Giovanni Pettinelli, Michele Lamaro (capt), Braam Steyn.

Replacements: Tomas Baravalle, Cherif Traoré, Tiziano Pasquali, Marco Lazzaroni, Sebastian Negri, Lorenzo Cannone, Luca Petrozzi, Luca Morisi.

Referee: AJ Jacobs (SARU)