Munster moved five points clear at the top of Pool One of the Heineken Cup after edging out the Scarlets.
Ronan O'Gara fired over two penalties to help the hosts into a 6-3 half-time lead at a sunny Thomond Park.
Munster took control with James Coughlan's converted try after Jonathan Edwards was sin-binned.
The hosts moved 19-6 ahead but the Scarlets fought back and Rhys Priestland coverted a Ken Owens try to secure a valuable losing bonus point.
The visitors enjoyed early possession but Munster took the lead from an O'Gara penalty after their first venture into the Scarlets half on five minutes.
Jones deservedly levelled eight minutes later as the Scarlets continually found gaps in the Munster line.
The Scarlets pressed Munster back but typically stout defending from the hosts and handling errors thwarted chances of a try.
Munster rarely threatened although they moved back in front five minutes from the break with an O'Gara penalty after a series of scrum collapses.
Jones pushed a penalty attempt wide two minutes while Munster almost scored a try on the stroke of half-time.
The ball was moved wide and Simon Zebo darted through but he was held up just before the line and then rightly penalised when he pushed the ball over the line in a double movement.
The Scarlets were forced into a half-time change with Viliame Iongi replacing Stephen Jones, who suffered a blow to the head.
O'Gara hit the upright with a penalty just after the restart but he made no mistake with another attempt two minutes later.
Priestland assumed kicking duties for the Scarlets in Jones's absence although he missed with his first penalty.
Munster dominated after Jonathan Edwards was sin-binned on 51 minutes for denying the hosts a try in the corner.
From the resulting line-out Munster drove over the line with Coughlan touching down and O'Gara converting.
Priestland fired over a penalty but O'Gara quickly replied to put Munster 19-6 ahead.
The Scarlets mounted a comeback and Edwards was denied a try because of a double movement before Owens went over from close range for a converted try after 66 minutes.
The Welsh team were now on top but Rhys Thomas was yellow-carded in the dying seconds before Munster secured their fourth straight victory in Pool One.
The Scarlets face Northampton in their next pool game, which takes place on the weekend of 13/14/15 January, with Munster hosting Castres on the same day.
Munster: D Hurley; J Murphy, K Earls, L Mafi, S Zebo; R O'Gara, C Murray; W du Preez, D Varley, BJ Botha; D O'Callaghan, P O'Connell capt; D Leamy, N Ronan, J Coughlan.
Replacements: T O'Leary for Murray (64), M Horan for du Preez (71), D Ryan for Leamy (64), T O'Donnell for Coughlan (76).
Not Used: D Fogarty, S Archer, I Keatley, D Barnes.
Scarlets: R Priestland; L Williams, S Williams, J Davies, S Lamont; S Jones, G Davies; R Jones, M Rees (capt), R Thomas, L Reed, D Welch, R McCusker, J Edwards, B Morgan.
Replacements: G Maule for L. Williams (64), V Iongi for S. Jones (41), T Knoyle for G Davies (68), P John for R. Jones (68), K Owens for M Rees (64), S Timani for Welch (68).
Not Used: D Manu, K Murphy.
Sin Bin: J Edwards (51), R Thomas (80).
Ref: Dave Pearson (RFU).