Ulster rose to the summit of the PRO12 table with a third consecutive win but they were made to fight all the way by the Scarlets.
It is the first time Ulster have won their opening three games in the competition since 2012.
Rhys Patchell missed the chance to break the deadlock on five minutes as he pulled a penalty wide after Clive Ross failed to roll away from a ruck.
Out half Paddy Jackson making his first appearance of the season gave Ulster the lead on nine minutes with a penalty after Scarlets flanker James Davies pulled down a maul.
Jackson doubled Ulster's advantage on 16 minutes with his second penalty when Rodney Ah You won a scrum penalty.
Ulster got the game's first try on 19 minutes, Craig Gilroy launched a counter attack from just inside his own half, he found Charles Piutau in midfield and the New Zealander fired a pass to Jackson, the out half released Stuart McCloskey on the left wing, the centre made a break and offloaded out of the tackle for South African Louis Ludik to dot down but Jackson failed to convert.
The home side nearly had their second try when following another sweeping move Piutau put Gilroy free down the right wing but Liam Williams was able to get across and bundle the Irish winger into touch close to the line.
Ulster had to settle for an 11-0 lead at the interval despite Scarlets having lock Jake Ball sin binned four minutes before the break.
Pacthell got the first points of the second half when he knocked over a 48th minute penalty after Ulster were caught offside and it was moved 10 metres closer after Robbie Diack tried to stop it being taken quickly Gilroy was denied a try when he superbly caught a Ruan Pienaar box caught in the Scarlets 22 and drove over the line but Liam Williams was able to get under the winger and stop him grounding the ball.
Piutau stopped the Scarlets from scoring a try with a brilliant intercept in his own 22, Hadleigh Parkes led a counter attack for the visitor down the left wing, he popped the ball inside to Aled Davies and but the All Black read his intended pass to James Davies who would have had a simple run in.
Jackson got Ulster's first points of the second half on 70 minutes when he landed a penalty in front of the posts.
The Scarlets got a try on 76 minutes from replacement Will Boyde, the visitors kicked a penalty to the corner, from the driving maul the ball was switched to the blindside for the No. 8 to dot down with Patchell striking the upright with the conversion.
Ulster sealed the victory in injury time with a try for Iain Henderson.
From a driving maul the forwards made the hard yards before the Irish lock powered through the middle to cross the whitewash although Jackson failed to convert.
C Piutau, C Gilroy, S Olding, S McCloskey, L Ludik. P Jackson, R Pienaar.
C Black, R Herring, R Ah You; P Browne, A O'Connor; C Ross, S Reidy, R Diack
J Andrew, A Warwick for Black 64 mins, R Kane for Ah You 52 mins, F van der Merwe for Browne 55 mins, I Henderson for Ross 41 mins, A Lloyd for Marshall, L Marshall for Olding 63 mins, R Lyttle for McCloskey 66 mins
A Thomas, L Williams, Jonathan Davies, H Parkes, S Evans, R Patchell, G Davies,
W Jones, K Owens, W Kruger, J Ball, D Bulbring, L Rawlins, James Davies, J Barclay
R Elias for Jones 67 mins, L Garrett, P Edwards for Kruger 50 mins, T Beirne forRawlins, W Boyde for Barclay 65 mins, Aled Davies for G Davies 56 mins, S Williams for Thomas 53 mins, S Hughes
Ref B Whitehouse (WRU)