Scarlets were indebted to George Earle for the only try of the game, as well as replacement Aled Thomas, who kicked three penalties.
Both sides went into the game stripped of a significant amount of internationals. The Scarlets were without seven players away on international duty, meaning Kirby Myhill started at hooker and prop Samson Lee returned after a two week suspension.
Ulster were without eight players on international duty but Andrew Trimble and Roger Wilson were released by Ireland.
Apart from the opening exchanges, when Ulster opened the scoring with a Ruan Pienaar penalty on nine minutes, Scarlets enjoyed the wealth of possession and territory for the rest of the first half.
But it took the Scarlets time to convert that pressure into points. At one stage they went through 33 phases in Ulster’s 22 but came away with nothing as the visitors’ defence held firm.
Nic Reynolds broke through on another attack but although Lee went over, the try was ruled out for obstruction.
Scarlets finally got on level terms with a Steven Shingler penalty on 22 minutes.
The home side’s dominance finally paid dividends when Earle went over for a try from a lineout drive on 32 minutes.
And just before the break, Thomas, on for the injured Shingler, kicked a penalty to give Scarlets an 11-3 interval lead.
But with all the ball Scarlets had, it could have been more than an eight-point advantage. Pienaar closed the gap with a penalty five minutes into the second half as Ulster enjoyed more possession
But Scarlets’ first concerted attack of the half produced a yellow card and a penalty goal. Replacement David McIlwaine found himself in the bin for slowing ball at a ruck in the Ulster 22. From the resulting penalty Thomas kicked Scarlets back into an eight-point lead, 14-6.
But that was cancelled out when Pienaar landed his third penalty 11 minutes from time after a Scarlets scrum offence.
And Pienaar had the chance to reduce the gap to just two points but uncharacteristically missed the target with eight minutes remaining, not helped that flanker Roger Wilson received a yellow card following a blatant trip on man of the match, Sione Timani.
Crucially for the Scarlets, Thomas kicked a third penalty with three minutes remaining to put his side two scores in front.
G Owen; N Reynolds, G Maule, A Warren, J Williams; S Shingler, G Davies; P John (c), K Myhill, S Lee, J Ball, G Earle, A Shingler, J Turnbull, S Timani.
Replacements: D Harris, R Evans, J Adriaanse, J Synman, J Barclay, A Davies, A Thomas, C Knight.
J Payne (c); M Allen, D Cave, C Farrell, A Trimble; R Pienaar, P Marshall; C Black, R Herring, J Afoa, L Stevenson, N McComb, R Diack, R Wilson, N Williams.
Replacements: N Annett, K McCall, R Lutton, M McComish, S Doyle, J McKinney, R Andrew, D McIlwaine.