A second-half fightback ended a five-game losing streak and maintained the Scarlets' 100% record at Wrexham's Racecourse in front of a poor crowd.
Scarlets (10) 24
Tries: Watkins, Havili, Davies
Cons: Bowen (3)
Leinster (19) 22
Pens: Holwell (5)
Matthew Watkins' early try opened the scoring, before Leinster fly-half David Holwell took charge of the game.
His 17 points and a Ricky Nebbett try built a commanding lead for the Irish.
But a Holwell mistake gave Aisea Havili a score, then Barry Davies started and finished a try, converted by Bowen for the crucial winning margin.
It was the Scarlets who exploded out of the blocks, and on the day that Scott Quinnell announced he would be retiring at the end of the season they produced a drive from a line-out that the big man would have been proud of.
Quick ball came to the backs where centre Watkins had the speed to drift round the disorganised defence for a converted try.
The gritty Leinster pack then began to rumble, and with Kiwi Holwell orchestrating behind, pressure mounted on the Scarlets.
Four kickable penalties were conceded by the Welsh side - and Holwell slotted every one.
Gavin Thomas' offence at a ruck for the last of those penalties led to a yellow card for the Scarlets flanker, and the
numerical disadvantage would cost them dear.
Lost Scarlets ball in midfield led to a breakaway by Leinster wing John McWeeney, but he failed to control his hack through
and Tal Selley kicked into touch by the corner flag.
The visitors put together a well-organised rolling maul from the line-out, and prop Nebbett was able to pop through the
under-strength defence for a converted try.
Leinster loose-head John Lyne was then sin-binned for another ruck offence, and Bowen's resultant penalty narrowed the gap to
19-10 at the break.
A Holwell mistake got the Scarlets right back in contention as his loose pass in the middle of the pitch was picked up by
Havili who had the pace to run in the try.
The Kiwi landed his fifth penalty on 66 minutes, before Scarlets full-back Davies instigated a furious attack.
He made a scything midfield break that was well supported through two phases of play, before the ball came back to him wide
on the left for the crucial try.
Bowen's conversion from an awkward angle gave the home side their two-point lead that they held through a tense finale.
"It was there for the taking, but at the end of the day we tried to play too much rugby when we should have held it and
kicked more," said man-of-the-match Holwell.
"They played good football and scored some fine tries. They took their chances, so all credit to them."
Scarlets director of rugby Gareth Jenkins said he hoped that the win would get their season back on track.
"We've been beating ourselves up for the last month and were starting to get concerned," Jenkins told BBC Sport Wales.
"The spirit was good and we didn't drop our heads, but a win was important and I hope that it will energise us.
"The season isn't even half over and there's still a lot to play for."
Scarlets: B Davies; G Evans, M Watkins, T Selley, A Havili; G Bowen, M Phillips; P John, M Rees, J Davies, V Cooper (capt), A Jones, J Mills, G Thomas, D Hodges.
Replacements: D Maddocks, A Gravelle, B Griffiths, A Powell, C McDonald, Aled Thomas, G Evans.
Leinster: Hewitt; J McWeeney, K Lewis, C Warner, J Norton; D Holwell, B O'Meara; J Lyne, D Blaney, R Nebbett, L Cullen, B Gissing, A McCullen, S Jennings, D Dillon.
Replacements: E Byrne, G Hickie, C Potts, N Ronan, Heaslip, B O'Riordan, D McAllister.
Referee: Andrew Ireland (Scotland)