|Treviso (10) 20|
|Tries: Christie 2, Gori Con: Hayward Pen: Hayward|
|Scarlets (12) 22|
|Tries: Allen 2, Van Der Merwe Cons: Thomas 2 Pen: S Shingler|
Steven Shingler's controversial 75th-minute penalty gave Scarlets a narrow victory in Treviso to top the Pro12.
Number eight Morgan Allen crossed in either half on his competitive debut while wing DTH van der Merwe scored their other try.
But a second try for Sam Christie 10 minutes from time, following an opportunist effort by Edoardo Gori, threatened to derail Welsh hopes.
The result takes the Scarlets ahead of Connacht at the top of the table.
Both sides started with attacking intent on a fine sunny afternoon in northern Italy and the home side struck after just six minutes with a try by Kiwi centre Christie, created and converted by Jayden Hayward.
But the Scarlets' decision to kick to the corner five minutes later paid dividends as Allen forced his way over from close range for Aled Thomas to convert.
The visitors then took advantage of two successive line-out mistakes by Treviso, allowing a floated pass from prop Rob Evans to free Van Der Merwe in the corner after 26 minutes.
Treviso saw lock Jean-Francois Montauriol held up next to the post, but had to settle for a Hayward penalty to make it 12-10 to the Scarlets at the break.
Treviso crossed the line early in the second half through Tommaso Iannone but the final pass was forward, and a penalty advantage judged to be over by Irish referee Dudley Phillips.
Allen charged over for his second try after 51 minutes after a Scarlets scrum strike against the head, with Thomas' conversion giving them a two-score lead.
It only lasted seven minutes as Gori pounced on a Scarlets handling mistake to run in from 35 metres.
With 10 minutes left, Christie squeezed over at the corner to give Treviso hope of a first win of the season.
But Hayward could not find the target with either conversion and that allowed the Scarlets one last chance.
Full-back Luke McLean was penalised for offside even though replays appeared to show the ball had been knocked backwards in open play by a Scarlets player.
Shingler made the most of a difficult angled opportunity from 40 metres with his only effort at goal, and the visitors managed to deny Treviso any territory in the remaining five minutes.
Scarlets captain John Barclay told BBC Wales Sport:
"Since I've been here we've always come away to the Italian teams and struggled a little bit. We started well, we didn't expect them to play with so much width, but we've come away with the win, so we're pretty happy.
"They came back into it but when they scored and there was 10 minutes left, we felt if we could get down there we could score. Fair play to Steve Shingler, he stood up for it [the winning penalty].
"It's nice to be top of the table but you don't get anything for being top after nine games. We've worked hard to get there, we haven't probably played our best rugby but we're grinding out good wins. Pleased to get there, but it's still early days."
Treviso: Luke McLean; Andrea Pratichetti, Tommaso Iannone, Sam Christie, Edoardo Gori; Jayden Hayward, Chris Smylie; Matteo Zanusso, Ornel Gega, Filippo Filippetto, Teofilo Paulo, Jeff Montauriol, Francesco Minto, Alessandro Zanni, Dean Budd.
Replacements: Roberto Santamaria, Alberto De Marchi, Simone Ferrari, Tom Palmer, Marco Barbini, James Ambrosini, Enrico Bacchin, Simone Ragusi.
Scarlets: Steff Evans; Michael Tagicakibau, Regan King, Hadleigh Parkes, DTH van der Merwe; Aled Thomas, Aled Davies; Rob Evans, Emyr Phillips, Samson Lee, Jake Ball, Lewis Rawlins, Aaron Shingler, John Barclay (capt), Morgan Allen.
Replacements: Kirby Myhill, Dylan Evans, Rhodri Jones, Tom Price, Maselino Paulino, Rhodri Williams, Steve Shingler, Gareth Owen.
Referee: Dudley Phillips (IRFU)
Assistant referees: Giuseppe Vivarinni, Simone Boaretto (Italy)
Citing commissioner: Alberto Recaldini (Italy)
TMO: Carlo Damasco (Italy)