The Scarlets ended their seven-match losing run against the Ospreys in a compelling Pro12 festive Welsh derby at Parc y Scarlets.
Prop Rhys Thomas went over for the hosts in the opening period and full-back Barry Davies levelled the try-scoring after the break.
But the kicking duel went home fly-half Rhys Priestland's five penalties and a conversion for 17 points.
Opposite number Dan Biggar kicked three penalties.
There were some outstanding individual displays from both teams.
Scarlets full-back Liam Williams enhanced his growing reputation before departing injured in the second-half.
Priestland overshadowed opposite number and Wales rival Biggar in the opening period, the latter guilty of kicking away too much possession in the eyes of Scrum V pundit Jonathan Davies.
Up front the Ospreys scrum had the better of their opponents and out wide diminutive veteran Shane Williams and teenage powerhouse George North enjoyed a fascinating battle.
North made his mark with his sheer presence and Williams underlined why he has been such a success in the game with a clever tackle that knocked the ball out of the bigger player's arms as he carried it in one hand.
Priestland capitalised on their opening pressure with two penalties and Biggar replied with his first successful shot at goal.
But despite the Ospreys having the edge at the scrums, home prop Thomas was able to celebrate a well-taken try.
He bumped lock Ryan Jones out of the way before crashing over to reward a gutsy, aggressive and well-organised opening period display.
Priestland added the conversion and a penalty to give the hosts their 13-point half-time advantage.
Biggar kicked two penalties as the visitors maintained their challenge.
That effort continued with a well-taken, if disputed score, in which centre Andrew Bishop was heavily involved before sending the final pass to ex-Scarlet Barry Davies.
The full-back went over with lively opposite number Liam Williams clinging on in vain.
Biggar was unable to convert from the touchline, but Davies' score boosted the Ospreys' confidence in the face of their west Wales rivals.
Priestland failed with a medium-range 60th-minute penalty and visiting skipper and openside Justin Tipuric halted replacement prop Phil John's charge for the line with a tackle that also dislodged the ball.
Scarlets' fly-half Priestland stretched his side's lead to five points as he found his range again with a 64th-minute penalty.
When Ospreys and Wales prop Adam Jones went down injured and was treated for a neck injury a minute later, pundit Davies summed up Welsh fears as the Six Nations loomed.
"Every time Adam Jones gets injured, the whole of Wales holds its breath," said Davies.
Soon after, Aaron Jarvis took over from the British and Irish Lion on the bench.
Worse still for the Ospreys, Priestland kicked another penalty.
The Ospreys were denied at the other end when they were unable to control possession at an advancing scrum.
At the other end, Priestland failed with a late chance to put the outcome beyond doubt.
But that proved irrelevant at the death with the Ospreys falling short of their bid for a bonus point.
Scarlets: L Williams; North, S Williams, J Davies, Lamont; Priestland, G Davies; R Jones, M Rees (capt), R Thomas, Reed, Day, Shingler, Morgan, McCusker.
Replacements: S Jones for L Williams (59), John for R Jones (60), Owens for M Rees (66), Manu for R Thomas (66), J Edwards for Reed (71), Timani for Day (40).
Not Used: R. Williams, Iongi.
Ospreys: B Davies; Bowe, Bishop, Beck, Williams; Biggar, Fotuali'i; James, Hibbard, A Jones, R Jones, J Thomas, Smith, Bearman Tipuric (capt).
Replacements: Dirkson for Bishop (72), Morgan for Biggar (70), Bevington for James (53), Jarvis for A Jones (66), King for R Jones (51), Stowers for Smith (61).
Not Used: M Davies, Webb.
Referee: Nigel Owens (Welsh Rugby Union)
Assistant Referees: Neil Hennessy, Jon Mason
Citing Commissioner: Richard Gwynn
TMO: Derek Bevan