Glasgow took a big step towards a home Pro12 play-off semi-final as they romped to an eighth successive win at Scarlets.
Finn Russell and Lee Jones each went over twice in the bonus-point win against a side who had been hit by a stomach illness in the build-up.
Henry Pyrgos and Tommy Seymour also touched down for Glasgow.
Liam Williams’ first-half try on his return from injury was Scarlets’ scant consolation.
Russell returned at fly-half for the visitors as coach Gregor Townsend rang changes including the reintroduction of scrum-half Pyrgos and full-back Stuart Hogg.
Wales full-back Williams returned from a hamstring injury for the hosts and their starting line-up was as announced despite fears it would be disrupted by a stomach bug affecting up to 20 squad members.
Shingler’s opening penalty was followed by Russell’s leveller and the latter’s superbly-executed, chip-and-gather try and conversion.
Russell added a penalty before going over for his second.
Scarlets cut the 15-3 lead as Williams side-stepped through a disjointed defence for Shingler to convert.
But the hosts’ momentum was halted as Pyrgos broke free from a turnover to send wing Jones haring to the line and Glasgow led 10-20 at the break.
Pyrgos got his second soon after the break, and there was no second-half response as Glasgow built their lead.
Centre Bennett benefited from good build-up work and Seymour finished off a move that Russell started with an interception.
Wing Jones grabbed the final Glasgow try to send them second in the table.
However, Connacht have the chance to reclaim that place when they host Munster later on Saturday.
Scarlets: Liam Williams; Steff Evans, Gareth Owen, Hadleigh Parkes, DTH van der Merwe; Steven Shingler, Gareth Davies; Ron Evans, Ken Owens (capt), Samson Lee; Jake Ball, David Bulbring; Maselino Paulino, James Davies, John Barclay.
Replacements: Kirby Myhill, Phil John, Peter Edwards, George Earle, Morgan Allen, Aled Davies, Aled Thomas, Steffan Hughes.
Glasgow Warriors: Stuart Hogg; Tommy Seymour, Mark Bennett, Alex Dunbar, Lee Jones; Finn Russell, Henry Pyrgos; Gordon Reid, Fraser Brown, Sila Puafisi; Tim Swinson, Jonny Gray (capt); Rob Harley, Ryan Wilson, Josh Strauss.
Replacements: Pat MacArthur, Jerry Yanuyanutawa, Zander Fagerson, Leone Nakawara, Tyrone Holmes, Grayson Hart, Duncan Weir, Taqele Naiyaravoro
Referee: George Clancy (IRFU)
Assistant referees: Ian Davies, Simon Brickell (both WRU)
Citing commissioner: Dennis Jones (WRU)
TMO: Jon Mason (WRU)