Ulster moved into second place in the Magners League with a hard-earned win over the Scarlets at Ravenhill.
Ulster led 13-6 at half-time thanks to an Ian Humphreys try and two penalties and a conversion by Ruan Pienaar to two penalties by Stephen Jones.
Jonathan Davies scored a try but Humphreys crossed for his second touchdown which Pienaar converted.
Replacement Aaron Shingler ran in for a late try and Rhys Priestland converted but Ulster hung on to win.
It was Ulster's sixth successive win but the result dealt irreparable damage to the Scarlets' play-off hopes.
The Scarlets controlled the game early on and Jones landed his first penalty after eight minutes.
Pienaar missed with a long-range attempt and also with another penalty effort from close range.
Humphreys showed a searing burst of pace to score his first try under the posts in the 25th minute.
Scrum-half Pienaar provided the pass and his half-back partner sold an outrageous dummy before racing over to score.
Pienaar converted to move Ulster four points ahead.
Andrew Trimble accepted an Adam D'Arcy pass and almost got over in the corner but Ben Morgan prevented a certain score with a last-ditch tackle.
Jones scored his second penalty from in front of the posts but Pienaar responded with his first successful penalty attempt from close range to restore the home side's four-point advantage.
A Pienaar penalty from near the left touchline made it 13-6 to Ulster at the interval.
Davies outpaced the Ulster defence to run in for a try in the first minute of the second period but Priestland missed the conversion.
Josh Turnbull was then sin-binned for illegal use of the boot on 49 minutes but the Scarlets enjoyed a period of superiority which they were unable to convert into points.
In the 64th minute Simon Danielli made a break but he was tackled by Davies as he made for the visitors' line.
Tom Court recycled the ball and Pienaar provided the offload to Humphreys who went over for his second try of the match.
Pienaar converted to extend his side's advantage to nine points.
With three minutes remaining Pienaar's wayward pass was collected by Shingler and he shrugged off an attempted tackle by Humphreys to cross the line.
Priestland converted and Scarlets picked up the consolation of a losing bonus point.
Ulster: A D'Arcy; A Trimble, N Spence, P Wallace, S Danielli; I Humphreys, R Pienaar; T Court, R Best (capt), BJ Botha, J Muller, D Tuohy, R Diack, W Faloon, P Wannenburg.
Replacements: P McAllister for Botha (60), T Barker for Diack (71), C Henry for Faloon (63).
Not used: A Kyriacou, D Fitzpatrick, P Marshall, I Whitten, C Gilroy
Tries: Humphreys 2; Pens: Pienaar 2 Cons: Pienaar 2
Scarlets: Rhys Priestland; Gareth Maule, Regan King, Jon Davies, Morgan Stoddart; Stephen Jones, Tavis Knoyle; Iestyn Thomas, Matthew Rees (capt), Rhys Thomas, Lou Reed, Rob McCusker, Josh Turnbull, Johnathan Edwards, Ben Morgan.
Replacements: Emyr Phillips for Rees (76), Rhodri Jones for Thomas (71), Peter Edwards for R Thomas (69), Aaron Shingler for Edwards (72), David Lyons for McCusker (63), Daniel Evans for Jones (41), Scott Williams for Davies (63).
Not used: Martin Roberts
Tries: Davies, Shingler; Pens: Jones 2; Con: Priestland
Referee: Graham Knox (Scotland).