Scarlets 12 Ulster 19: Paddy Jackson kicked 16 points as leaders Ulster made it 10 wins from 10 in the RaboDirect PRO12 with a solid victory at second-placed Scarlets.
Fly-half Jackson was wayward with just one of his six kicks, while wing Andrew Trimble claimed the only try of the game as he ran 70 metres after an interception.
The Scarlets did at least manage an injury-time losing bonus point as number 10 Aled Thomas kicked his fourth penalty.
Minus all their Wales players the Scarlets made a late change with Nic Reynolds replacing centre Gareth Maule because of a knee injury.
Ulster fielded a side showing nine changes, including the return of captain Johann Muller.
In a match dominated by wet conditions chances were few and far between. Both outside-halves, Thomas and Jackson, missed early penalty attempts.
But on 10 minutes the Scarlets were caught offside from a kick and Jackson broke the deadlock with a penalty.
The Scarlets became the first side to put together some phases although it ended with Ulster scoring the first try of the game.
Centre Gareth Owen's pass was picked off by Trimble, who raced in from 70 metres to score. Jackson converted to give Ulster a 10-3 lead on 28 minutes.
And there was more trouble for the Scarlets as they were penalised at a scrum right in front of the posts on their 22. Jackson made no mistake with the penalty kick to open up a 10-point lead by the interval.
It took the Ulstermen only until the third minute of the second half to extend their lead with a third penalty for Jackson. It was an especially crucial kick as Thomas badly missed a penalty attempt three minutes later.
But Thomas did make up for the miss by finding the target twice with penalties on 49 and 53 minutes to cut the visitors' lead to seven points.
But the introduction of front rowers Rory Best and Tom Court turned the initiative back Ulster's way as they earned a penalty from a strong scrum, with Jackson converting his fourth penalty to restore a 10-point advantage.
Ulster had replacement lock Dan Touhy sin-binned for a ruck offence but Thomas was wide with the subsequent penalty, although he was on target with the crucial bonus-point kick on 82 minutes.
SCARLETS – D Newton; K Phillips (A Warren 72), N Reynolds, G Owen, A Fenby; A Thomas, G Davies (A Davies 51); P John (S Hopkins 63), E Phillips (K Myhill 18), J Adriaanse (D Manu 63); J Snyman (T Vallejos Cinalli), R Kelly; G Earle, J Edwards, K Murphy.
ULSTER – P Nelson; A Trimble, D Cave, L Marshall, C Gilroy (T Bowe 40); P Jackson, P Marshall; C Black (T Court 56), R Herring (R Best 56), J Afoa; J Muller (D Tuohy 40), N McComb (M McComish 60); I Henderson, R Diack, R Wilson.
REF – P Fitzgibbon (IRFU