Llanelli Scarlets needed an injury-time Gareth Bowen penalty and a Dafydd Jones try to see off a Dragons fightback.
Scarlets (22) 35
Tries: Watkins (2), D Jones (2)
Cons: Bowen (3)
Pens: Bowen (3)
Dragons (16) 26
Tries: Morgan, Owen
Cons: Sweeney (2)
Pens: Sweeney (4)
The visitors went ahead through a Kevin Morgan try, but the Scarlets then took control with two Matthew Watkins tries either side of Jones' first effort.
Ceri Sweeney's boot kept the Dragons in touch, and they took a surprise one-point lead 10 minutes from time when Michael Owen forced his way over.
But Bowen and Jones struck late to secure a deserved Scarlets victory.
Morgan crossed for the opening try with less than four minutes on the clock when an inside pass from centre Sione Tuipulotu split open the home defence.
Sweeney added the simple conversion, but Scarlets soon wrestled back control of the match with two tries in four minutes.
First Watkins intercepted Sweeney's long pass inside his own half and the centre had enough pace to race clear to score under the posts.
Jones' try was far lees spectacular but no less important as he drove over from a ruck two metres out. Bowen converted both tries.
Dragons winger Nathan Brew had 'try' disallowed for a forward pass, but the visitors reduced the deficit to 14-13 with two Sweeney penalties before the half hour mark.
Ian Gough was sent to the sin bin for a high tackle on Scarlets centre Salesi Finau and the home side took full advantage of the extra man as Watkins scored his second try.
The centre finished off a fine multi-phased move when he dived on Bowen's perfectly weighted chip-kick in the right corner.
Finau then followed Gough into the sin-bin for the same offence a few minutes later, and Bowen and Sweeney landed a penalty apiece to end the first half scoring.
The fly-halves added another three points each early in the second half before Scarlets skipper Simon Easterby became the third player to be sent to the sin bin.
The Ireland international was penalised for killing the ball as the Dragons edged close to the tryline.
But the visitors had their reward when Owen forced himself over from the resulting scrum, and Sweeney's conversion put the Dragons a point ahead with time fast running out.
The Scarlets, though, were determined not to lose a game that looked like being a comfortable victory.
One last charge towards the Dragons tryline forced Tuipulotu to kill the ball in the ruck - an offence which brought him a yellow card - and Bowen slotted over his third penalty to secure the win.
And just to make sure, Jones crossed for his second try when he was driven over by his fellow forwards and Bowen converted.
Scarlets: G Evans; A Havili, M Watkins, S Finau, T Selley; G Bowen, D Peel; I Thomas, M Rees, D Hewett, V Cooper, C Wyatt, S Easterby (capt), I Boobyer, D Jones.
Replacements: J Davies, P John, A Gravelle, A Jones, A Powell, M Phillips, A Thomas.
Dragons: P Montgomery; N Brew, H Luscombe, S Tuipulotu, K Morgan; C Sweeney, G Baber; A Black, S Jones, C Anthony, L Charteris, P Sidoli, I Gough, J Ringer, M Owen (capt).
Replacements: J Richards, R Thomas, R Oakley, C Trayhern, G Wyatt, C Warlow, B Breeze.
Referee: Hugh Watkins (WRU).