The Scarlets made best use of the difficult conditions to earn a deserved eight-point Pro12 win over Ulster.
A George Earle try helped the home side to an 11-3 half-time lead, with Steve Shingler and Aled Thomas kicking a penalty apiece for the Scarlets.
Ruan Pienaar landed one penalty in the first half and two in the second but Ulster failed to secure a bonus point as their six-match unbeaten run ended.
Thomas kicked two penalties after the break as Scarlets secured the victory.
Pienaar made light of the nasty, swirling wind to slot the ball between the posts and put Ulster into a ninth-minute lead.
The Scarlets then enjoyed a sustained period of pressure and put together several dozen phases of play on the Ulster line, but the visitors defended stoutly and were eventually able to clear.
Replacement John Barclay did breach the Ulster defence with a piercing run but a good covering tackle from Paul Marshall denied the Scot a possible try.
Shingler knocked over a penalty from in front of the posts in the 22nd minute and nine minutes later the Scarlets converted their territorial dominance into further points when Earle rumbled over for his try.
The second row touched down after good work by his fellow forwards, but Shingler was unable to add the extra two points.
Flanker Barclay broke through the Ulster rearguard again soon after but Marshall managed to hold onto him in the tackle as he made a dash for the line.
An Aled Thomas penalty just before half-time increased the Scarlets' advantage to eight points.
Three minutes after the break, Pienaar missed with a long-range penalty attempt but the Springbok made no mistake with his next effort two minutes later.
Ulster replacement David McIlwaine was yellow-carded for not releasing just two minutes after coming on as a replacement and Thomas kicked the resulting penalty between the posts after 64 minutes for 14-6.
Pienaar replied with his third penalty of the game on 69 but was off-target with a straightforward kick from in front of the posts soon after.
Roger Wilson became the second Ulster player to be sin-binned after a trip in the 74th minute while a John Afoa infringement allowed Thomas to slot over his third penalty with three minutes remaining.
Scarlets: Owen, Reynolds, Maule, Warren, J. Williams, S. Shingler, G. Davies, John, Myhill, Lee, Ball, Earle, A. Shingler, Turnbull, Timani.
Replacements: A. Thomas for S. Shingler (37), Barclay for A. Shingler (14). Not Used: Harris, Evans, Pungea, Snyman, A. Davies, Knight.
Ulster: Payne, Trimble, Cave, Farrell, Allen, Pienaar, P. Marshall, Black, Herring, Afoa, Stevenson, McComb, Diack, Wilson, Williams.
Replacements: McIlwaine for Allen (61), McKinney for P. Marshall (56), McComish for McComb (71). Not Used: Annett, McCall, Lutton, Doyle, R. Andrew.
Sin Bin: McIlwaine (63), Wilson (74).
Referee: Alain Rolland (IRFU)
Assistant Referees: Gwyn Morris, Andrew Davies (both WRU)
Citing Commissioner: Aurwel Morgan (WRU)
TMO: Tim Hayes (WRU)