The visitors opened the scoring with a Dan Newton penalty after 29 minutes.
But just before the break the Scarlets lost Rhys Thomas to the sin-bin and during that time the hosts scored ten unanswered points, with a try from Ludovico Nitoglia and five points from the boot of Kris Burton.
That gave Treviso the advantage after the first forty minutes but the Scarlets responded straight after the interval with a try from Wales Under 20 wing Liam Williams. Newton converted to level the scores.
Burton then edged Treviso in front with a second penalty before Brendan William touched down to put the game beyond doubt.
The win moves the Italian side up to sixth in the table while the Scarlets find themselves just a point off the bottom two.