Paddy Jackson kicked six penalties to Dan Biggar's four as Ulster claimed a 16-12 victory over Ospreys at the Liberty Stadium to end their unbeaten run in the PRO12.
In a game where defence smothered attack it was the boot of the Welshman that ruled in the first 45 minutes as Biggar gave the home side a 12-0 lead. But Jackson kept his cool as Ulster fought back to end the night with a perfect record off the tee and the man of the match award.
Biggar had an early chance to show off his footballing skills with a booming kick to touch after Ulster had gone offside in the Ospreys 22. From the resulting line-out the ball was fed to Biggar whose attempted drop goal was charged down by the onrushing Rory Best.
Ulster suffered an injury blow on 12 minutes when fullback Craig Gilroy hobbled off injured to be replaced by David McIlwaine.
Shortly afterwards Chris Henry was penalised at the lineout for pulling down his man in the air, and Biggar used his boot to send the Ospreys deep into Ulster territory. From the lineout Nick Williams was pinged for not rolling away from the tackle presenting Biggar the easiest of opportunities in front of the posts to make it 3-0.
The Ospreys had their best chance of the half when scrumhalf Tito Tebaldi found the charging Ashley Beck and he beat his man before offloading to Richard Hibbard in a dangerous position only for Justin Tipuric to be penalised for accidental offside.
With the clock ticking down to half-time Biggar was successful with his second penalty attempt from the right of the posts after the referee blew up for a Dan Tuoy elbow on Ospreys skipper Alun-Wyn Jones at the maul.
And Biggar made it 9-0 immediately after half-time when winger Mike Allen ran offside and the Welsh flyhalf struck a superb shot inside the right post.
On 44 minutes Biggar extended the Ospreys lead further after Luke Marshall failed to roll away in the tackle giving the flyhalf another long shot at goal that he took with aplomb.
Jackson had an immediate chance to reduce the deficit when Adam Jones was penalised at the scrum and the Ireland No.10 kept his nerve to make it 12-3. On 52 minutes it was 12-6 after a second well-taken penalty from Jackson after Joe Bearman went offside at a line-out near halfway.
Sixteen minutes into the second period and the Ospreys were penalised for wheeling a scrum on their ten-metre line and Jackson struck with his third successful penalty to keep up his 100 per cent record.
Ulster had their best passage of play when a loose Hassler clearance gave the visitors an attacking platform and they attacked left and right, Ian Evans conceding the penalty and giving Jackson his easiest three-pointer of the evening.
All level going into the final ten minutes, a loose pass from Biggar gave Ulster the chance to break from deep and Olding kicked through for McIlwaine to chase but with the try line looming play was pulled back for a push on Richard Fussell.
But Ulster took the lead for the first time with a massive Jackson penalty off the tee from near halfway to make it 15 unanswered points in the second period.
With time ticking down and the pressure on the Ospreys began to make handling errors as they faced up to losing their unbeaten record this season.
And it looked all over when replacement Aaron Jarvis was sent to the sin bin with three minutes left for not rolling away in the tackle.
Jackson stepped up and slotted the resulting penalty to make it six from six, but with the last attack of the game the Ospreys went for broke, Stuart Olding saw yellow for not rolling away and Ulster found themselves defending for their lives on their own tryline.
But a knock-on from Hibbard and then an offside decision snuffed out any chance of a dramatic fightback.
Pens: Biggar 4
Pens: Jackson 6
Ospreys: 15 Richard Fussell, 14 Jeff Hassler, 13 Andrew Bishop, 12 Ashley Beck, 11 Eli Walker, 10 Dan Biggar, 9 Tito Tebaldi, 8 Joe Bearman, 7 Justin Tipuric, 6 Tyler Ardron, 5 Ian Evans, 4 Alun Wyn Jones (captain), 3 Adam Jones, 2 Richard Hibbard, 1 Ryan Bevington.
Replacements: 16 Scott Baldwin, 17 Duncan Jones, 18 Aaron Jarvis, 19 James King, 20 Sam Lewis, 21 Tom Habberfield, 22 Matthew Morgan, 23 Ben John.
Ulster: 15 Craig Gilroy, 14 Andrew Trimble, 13 Jared Payne, 12 Luke Marshall, 11 Michael Allen, 10 Paddy Jackson, 9 Paul Marshall, 8 Nick Williams, 7 Chris Henry, 6 Robbie Diack, 5 Dan Tuohy, 4 Johann Muller, 3 Declan Fitzpatrick, 2 R Best (captain), 1 Tom Court.
Replacements: 16 Rob Herring, 17 Callum Black, 18 Bronson Ross, 19 Iain Henderson, 20 Roger Wilson, 21 Michael Heaney, 22 Stuart Olding, 23 Darren Cave.
Referee: Peter Fitzgibbon (Ireland)
Assistant referees : Jon Mason (Wales) and Wayne Davies(Wales)
TMO: Derek Bevan (Wales)
Treviso 23-3 Connacht
Treviso made it just one defeat in their last nine games at the Stadio Monigo in all competitions with a 23-3 victory over Connacht.
Only the Ospreys have tasted success on the Italian outfit's home turf this season, and Connacht never really looked like adding their name to the victory roster.
Tries at the start and finish of the second period from flank Alessandro Zanni and Luca Morisi meant the result was never really in doubt after the interval, with the visitors only mustering a solitary Dan Parks penalty in reply.
Connacht suffered an early blow when Eoin Griffin picked up a calf injury in the warm-up, with Brian Murphy starting the game in the centre.
But the switch didn't seem to faze the Irish outfit early on as a brilliant chip and break from Gavin Duffy took play down into the Treviso 22 inside the first minute. The lineout was claimed by Craig Clarke but Connacht were unable to leave the Italians' 22 with any points.
And they found themselves a man down when Paul O'Donohoe was sent to the sin bin for hands in the ruck on seven minutes. From the resulting penalty Alberto di Bernardo kicked Treviso into a 3-0 lead.
Shortly afterwards Connacht flyhalf Parks had the opportunity to level up the scores but his penalty was wayward, flying wide of the right-hand upright.
As the first quarter of the game drew to a close Treviso were looking the more likely to add to their score, camping in the Connacht 22 and only desperate defence from the visitors prevented Treviso crossing the whitewash with the ball eventually turned over.
Play swung up the other end and it was the home side who were on the receiving end of a pummelling deep in their own defensive quarter, only for the ball to be spilled and the chance to go begging.
Connacht suffered more injury problems when Nathan White came on for Ronan Loughney, only to be forced off himself after just four minutes. The reshuffle saw Brett Wilkinson take to the field with Rodney Ah You moving to tighthead prop.
Treviso took advantage of the shake-up as di Bernardo slotted his second penalty eight minutes before the break. And it was 9-0 as the players jogged off at the interval as the flyhalf added a third penalty off the tee to put his side more than a converted score ahead.
Connacht struck first blood after the restart as Fionn Carr beat three men to break deep into Treviso territory, a difficult kick from Parks from a penalty soon after giving the Irish side their first points of the evening.
But almost immediately Treviso struck back with the first try of the evening from experienced Italian flanker Alessandro Zanni, di Bernardo adding the extras to increase the Italian side's lead to 16-3.
With 20 minutes left to play Parks left the field to be replaced by Jack Carty as Connacht looked to find a way back into the game. And the sin binning of Robert Barbieri with a little over ten minutes to play seemed to give them the chance to snatch something from the game.
But it was the Italians who weathered the storm and then came back strongly to finish the game on the front foot, replacement scrumhalf Luca Morsi crossing with less than two minutes remaining.
Tobias Botes - an early replacement for scrumhalf Edoardo Gori at the start of the second half - added the extras to make it 23-3 and put the result beyond doubt, sending the Treviso fans home happy.
Tries: Zanni, Morisi
Cons: Botes 2
Pens: Di Bernardo 3
Treviso: 15 Brendan Williams, 14 Ludovico Nitoglia, 13 Michele Campagnaro, 12 Alberto Sgarbi, 11 Christian Loamanu, 10 Alberto Di Bernardo, 9 Edoardo Gori, 8 Robert Barbieri, 7 Alessandro Zanni, 6 Simone Favaro, 5 Marco Fuser, 4 Antonio Pavanello (captain), 3 Alberto De Marchi, 2 Enrico Ceccato, 1 Michele Rizzo.
Replacements: 16 Giovanni Maistri, 17 Ignacio Fernandez-Rouyet, 18 Pedro Di Santo, 19 Valerio Bernabò, 20 Dean Budd, 21 Luca Morisi, 22 Luke McLean, 23 Tobias Botes.
Connacht: 15 Gavin Duffy, 14 Tiernan O'Halloran, 13 Danie Poolman, 12 Eoin Griffin, 11 Fionn Carr, 10 Dan Parks, 9 Paul O'Donohoe, 8 George Naoupu, 7 Jake Heenan, 6 Andrew Browne, 5 Craig Clarke (captain), 4 Aly Muldowney, 3 Ronan Loughney, 2 Sean Henry, 1 Rodney Ah You.
Replacements: 16 James Rael, 17 Brett Wilkinson, 18 Nathan White, 19 John Muldoon, 20 Mata Fifita, 21 Kieran Marmion, 22 Jack Carty, 23 Matt Healy.
Referee: Neil Hennessy (WRU)
Newport Gwent Dragons 30-7 Zebre
Hallam Amos ensured his return to the Newport Gwent Dragons starting line-up was a happy one as his two tries helped his side maintain their perfect record at Rodney Parade this season.
A try either side of half-time for 19-year-old Amos, one from Wales scrumhalf Richie Rees and 15 points from the boot of Jason Tovey did the damage to hand Newport their 100th win on their home ground.
The Dragons came into the game searching for their third home PRO12 victory of the season having already beaten two of last year's top-four sides in Ulster and the Scarlets.
But they faced an Italian side who had won their first ever PRO12 match on their last trip to Wales, a 30-25 victory at Cardiff Arms Park just two weeks ago.
And it was Zebre who had the first opportunity to get points on the board with a penalty after eight minutes following a darting run from Brendon Leonard, but Luciano Orquera couldn't convert as his attempt came back off the post.
Shortly afterwards the hosts had a penalty of their own and Tovey stepped up to give the Welsh region a 3-0 lead with 13 minutes played.
The flyhalf then made an excellent break five minutes later, putting Zebre on the back-foot and after the visitors conceded another penalty within striking distance, Tovey made it 6-0 with another accurate kick.
The Italians were threatening to get on the scoreboard and wing Leonardo Sarto was all but in to score down in the corner but a superb try-saving tackle from Dan Evans denied him midway through the half.
Tovey nailed another penalty just after the half-hour following a scrum offence from Zebre to make it 9-0 and soon after Adam Hughes came off his wing to devastating effect, only for the final pass to go astray.
The Zebre set-piece was starting to show a few cracks and right on half-time, after they made a hash of the ball at the base of a scrum, Amos pounced to grab the game's first try, converted by Tovey to give the hosts a 16-0 lead at the break.
After a lacklustre start to the second half the Dragons were again the first to strike as Amos added his second try following some superb work from British & Irish Lion Toby Faletau.
Breaking off the back of a scrum on halfway, Faletau passed the ball to Tovey who was able to offload to Amos under pressure and the winger did the rest to finish in the corner.
Tovey added the extras to take his personal tally for the night to 13 points and that left half an hour for the Welsh side to grab the bonus point.
But it was Zebre who were next to score a try as Sarto went over in the corner on the hour for his side's first points of the evening, with Orquera adding the conversion to make the score 23-7.
Any chance of a comeback though was dashed when Mauro Bergamasco was sent to the sin bin and Rees scored try number three for the hosts soon after, made possible thanks to a huge drive from the Dragons scrum.
The Dragons threatened late on camping just five metres out from the Zebre line but they couldn't make their dominance tell as they fell just short of the elusive fourth try.
Tries: Amos 2, Rees
Cons: Tovey 3
Pens: Tovey 3
Dragons: 15 Daniel Evans, 14 Adam Hughes, 13 Ross Wardle, 12 Jack Dixon, 11 Hallam Amos, 10 Jason Tovey, 9 Richie Rees, 8 Toby Faletau, 7 Lewis Evans, 6 Netani Talei, 5 Andrew Coombs (captain), 4 Rob Sidoli, 3 Francisco Chaparro, 2 Sam Parry, 1 Owen Evans.
Replacements: 16 Hugh Gustafson, 17 Phil Price, 18 Dan Way, 19 Matthew Screech, 20 Ieuan Jones, 21 Jonathan Evans, 22 Kris Burton, 23 Will Harries.
Zebre: 15 Ruggero Trevisan, 14 Leonardo Sarto, 13 Tommaso Iannone, 12 Gonzalo Garcia, 11 Dion Berryman, 10 Luciano Orquera, 9 Brendon Leonard, 8 Samuela Vunisa, 7 Andries Van Schalkwyk, 6 Mauro Bergamasco, 5 Marco Bortolami (captain), 4 George Biagi, 3 Dario Chistolini, 2 Davide Giazzon, 1 Salvatore Peugini.
Replacements: 16 Tommaso D'Apice, 17 Matias Aguero, 18 Carlo Fazzari, 19 Michael Van Vuuren, 20 Filippo Cristiano, 21 Alberto Chillon, 22 David Odiete, 23 Giulio Toniolatti.
Referee: Matteo Liperini (Italy)
Assistant referees : Simon Rees (Wales) and Gwyn Morris (Wales)