Carlo Canna scored two drop goals either side of Jonathan Evans' try to give Zebre the lead in the first-half.
Aaron Shingler and DTH van der Merwe both crossed over as Scarlets led at the break while Aled Thomas's try sealed a bonus point.
Evans ran in his second try but Federico Ruzza and Giovanbattista Venditti set up a tense finale.
The result means Scarlets have picked up bonus points in each of their last five outings and are tied on 32 points with Leinster but remain fourth in the Pro12 on points difference at least until the Irish province face Newport Gwent Dragons later on Saturday.
The Italians stay second from bottom in the table but have games in hand on bottom-placed Treviso and Edinburgh who sit above them.
Zebre, whose only win in the Pro12 this season came against Edinburgh, almost recorded a second victory of the season when Ruzza and Venditti both crossed over the line and Canna kicked his second penalty in the closing stages.
Scarlets have marked an impressive turnaround in their fortunes after losing their opening three games of the season but Wayne Pivac's side held on for yet another win despite Zebre's late drive for points.
Zebre: Dion Berryman; Mattia Bellini, Tommaso Boni, Tommaso Castello, Giovanbattista Venditti; Carlo Canna, Marcello Violi; Bruno Postiglioni, Tommaso D'Apice, Dario Chistolini, Quintin Geldenhuys (capt), Federico Ruzza, Derick Minnie, Johan Meyer, Andries Van Schalkwyk
Replacements: Carlo Festuccia, Andrea De Marchi, Guillermo Roan, Gideon Koegelenberg, Valerio Bernabò, Guglielmo Palazzani, Matteo Pratichetti, Edoardo Padovani
Scarlets: Aled Thomas; DTH van der Merwe; Jonathan Davies; Hadleigh Parkes (capt), Steff Evans; Rhys Patchell, Jonathan Evans, Wyn Jones, Ryan Elias, Werner Kruger, Tadhg Beirne, Jake Ball, Aaron Shingler, James Davies, Will Boyde
Replacements: Emyr Phillips, Rob Evans, Samson Lee, Lewis Rawlins, Josh Macleod, Gareth Davies, Dan Jones, Gareth Owen
Referee: David Wilkinson (IRFU)
Assistant Referees: Kieran Barry (IRFU), Filippo Bertelli (FIR)
TMO: Simon McDowell (IRFU)
Scarlets survived a late comeback from Zebre as they held on to seal their seventh consecutive Pro12 victory.