Ospreys earned the west Wales bragging rights as they brushed aside Scarlets in their Boxing Day derby.
The power of the home scrum earned a penalty try, before lock James King popped up on the wing for a second try.
Kahn Fotuali'i also crossed to add five points to an earlier drop-goal, while Dan Biggar kicked 14 points.
Scarlets were limited to an Aled Thomas penalty, and had Rob McCusker and Gareth Owen sent off plus three other men sin-binned.
Ospreys took an early stranglehold on the game courtesy of their dominant scrum and some fiercely committed defence.
Biggar, with a penalty, and Fotuali'i, with a scruffy drop-goal, made sure that the home side's efforts translated into some reward on the scoreboard.
That Ospreys half-back pairing was also intent on pinning Scarlets back in their own 22, kicking into the corner when space out wide had been closed down by the defenders.
The Scarlets line-out weathered that storm a handful of times until Ospreys lock King managed to climb high enough to disrupt a throw.
The resulting Scarlets knock-on handed Ospreys the chance to attack at the scrum from close to the line and a huge surge splintered the red-shirted eight.
Referee Nigel Owens awarded the penalty try and Biggar's conversion gave Ospreys a 13-0 lead.
Thomas got Scarlets on the move with a penalty after Fotuali'i went off his feet at a ruck, but soon after the visitors had George Earle sin-binned for lying on the ball.
Ospreys' first-half dominance was underlined with two more Biggar penalties for a healthy 19-3 lead at the break.
Ryan Bevington had impressed in the scrum for Ospreys, winning his personal battle with Scarlets tight-head Samson Lee.
But the prop showed his all-round game eight minutes after the restart, floating a delicate lofted pass off his left hand to send King in at the corner for an unconverted try.
Unfortunately for the lock he was hurt in the process as Scarlets full-back Liam Williams put in a characteristically whole-hearted challenge, and King was replaced by Lloyd Peers.
The Scarlets bench was called on to shore up the front row, with Emyr Phillips, Shaun Hopkins and Jacobie Adriaanse tasked with stopping the force of Bevington, Richard Hibbard and Adam Jones - making his first start in two months following a knee injury.
The visitors' set-piece did improve but another Biggar penalty underlined that Ospreys still held the upper hand.
Scarlets again found themselves down to 14 men when replacement scrum-half Tavis Knoyle tackled Eli Walker before the wing had caught the ball.
Knoyle's opposite number, Fotuali'i, soon made use of the extra space, squeezing in at the left corner after Joe Bearman picked up from another attacking scrum.
Scarlets' indiscipline continued to haunt them and they finished the game with 12 men on the field.
Thomas was sin-binned for blocking quick release at a ruck, before both McCusker and Owen received red cards.
McCusker's sending off for dangerous use of the boot and Owen's for taking out Rhys Webb in the air completed a thoroughly miserable night for Scarlets in Swansea.
Ospreys: Richard Fussell; Ross Jones, Andrew Bishop, Ashley Beck, Eli Walker; Dan Biggar, Kahn Fotuali'i (capt); Ryan Bevington, Richard Hibbard, Adam Jones, Ian Gough, James King, Ryan Jones, Justin Tipuric, Joe Bearman.
Replacements: Scott Baldwin for Hibbard (64), Duncan Jones for Bevington (59), Cai Griffiths for A. Jones (67), Lloyd Peers for King (49), Morgan Allen for Gough (59), Rhys Webb for Fotuali'i (67), Matthew Morgan for Biggar (76), Tom Isaacs for Bishop (67).
Scarlets: Liam Williams; George North, Jonathan Davies (capt), Scott Williams, Kristian Phillips; Aled Thomas, Aled Davies; Phil John, Matthew Rees, Samson Lee, Jake Ball, George Earle, Josh Turnbull, Aaron Shingler, Kieran Murphy.
Replacements: Emyr Phillips for Rees (49), Shaun Hopkins for John (49), Jacobie Adriaanse for Lee (49), Richard Kelly for Earle (53), Rob McCusker for Shingler (40), Tavis Knoyle for Owen (55), Gareth Owen for S. Williams (55), Gareth Maule for L. Williams (62).
Sin Bin: Earle (27), Knoyle (65), A. Thomas (72).
Sent Off: McCusker (79), Owen (80).
Referee: Nigel Owens (WRU)
Assistant referees: Gwyn Morris, Jon Mason (WRU)
Citing commissioner: Ray Wilton (WRU)
TMO: Derek Bevan (WRU)