Scarlets all-but assured their place in next season's new European Rugby Cup with victory over battling Zebre.
The hosts had to over come the Italian visitors' gutsy effort to remain on course to finish second behind leading Welsh Pro12 team Ospreys.
Samuela Vunisa and Giulio Toniolatti helped the visitors to a 13-9 half-time lead.
But Jordan Williams and Ken Owens struck back while Rhys Priestland kicked 17 points.
The Pro12's entries to Europe's new top tier tournament has been cut from 10 spots to seven.
One guaranteed representative from will come from Ireland, Italy, Scotland and Wales and the other three places being decided on league position.
Even if they had lost against Zebre - and at one point that looked a distinct possibility - Scarlets would have been confident of holding on to second place in Wales behind Ospreys.
Rhys Priestland kicked two early penalties and Gonzalo Garcia replied before powerful number eight Vunisa went over from close range.
If that was a shock to the home side, what followed stunned then even further.
Vunisa's kick ahead gave wing Toniolatti the chance to win the foot race and score.
Priestland's third penalty boost home morale as the opening period drew to a close.
And wing Jordan Williams finished off a fine counter-attack to put Scarlets back into the lead with Priestland converting.
Replacement hooker Ken Owens underlined his prowess with a burst to finish off another attack.
Priestland was unable to convert, but kicked a penalty to stretch the home side's lead.
But the Wales fly-half was to blame for a poor attempt at a tackle on centre Garcia, who stormed to the line.
Luciano Orquera, another to come off the bench, converted the try.
But the hosts held their nerve to overcome some sloppy play and poor decision making and Priestland kicked his fifth and final penalty to seal the win.
Scarlets: Liam Williams; Kristian Phillips, Jonathan Davies (capt), Olly Barkley, Jordan Williams; Rhys Priestland, Rhodri Williams; Rob Evans, Emyr Phillips, Rhodri Jones, Jake Ball, George Earle, Aaron Shingler, Josh Turnbull, Sione Timani.
Replacements: Ken Owens, Phil John, Samson Lee, Johan Snyman, Richard Kelly, Aled Davies, Steven Shingler, Gareth Maule.
Zebre: David Odiete; Giovanbattista Venditti, Roberto Quartaroli, Gonzalo Garcia, Giulio Toniolatti; Tommaso Iannone, Brendon Leonard; Salvatore Perugini, Andrea Manici, Dario Chistolini, Quintin Geldenhuys (capt), George Biagi, Filippo Ferrarini, Samuela Vunisa, Filippo Cristino.
Replacements: Davide Giazzon, Andrea de Marchi, Luca Redolfini, Emiliano Caffini, Andries van Schalkwyk, Guglielmo Palazzini, Luciano Orquera, Ruggero Trevisano.
Referee: Andrew McMenemy (SRU)
Assistant Referees: Wayne Davies, Chris Williams (WRU)
Citing Commissioner: John Charles (WRU)
TMO: Tim Hayes (WRU)