The host team had already seen an Ashley Barnes volley ruled out for offside when Jack Cork gave the Clarets the lead, this time the flag staying down.
Barnes challenged Alisson in the box and the goalkeeper spilled the ball for Cork to tap in, but James Milner found the bottom corner with a fine strike from 25 yards to quickly equalise.
Jurgen Klopp then sent for substitutes Mohamed Salah and Firmino and it changed the game, with the latter scoring the winner less than three minutes after his introduction, staying onside to finish a set-piece struggling Burnley defended badly. Shaqiri then put the seal on the result for Liverpool late on.
Joe Gomez was forced off injured after a heavy challenge from Ben Mee as Burnley made a physical start.
Liverpool had to wait until the 29th minute for its first effort on goal, a Virgil van Dijk header from Milner's corner easily saved by Joe Hart.
Burnley had the ball in the net first, Barnes brilliantly volleying in Robbie Brady's free-kick, but a marginal offside call saw the goal disallowed.
Hart plunged to his right to turn away Daniel Sturridge's 20-yard drive after the restart, the Burnley goalkeeper then making a sensational save to tip Naby Keita's piledriver on to the post.
Burnley took the lead in the 54th minute as James Tarkowski's header was saved by Alisson, Barnes beating the goalkeeper to the loose ball with Cork pouncing on the rebound to slot home.
The Clarets' advantage lead was short-lived, Divock Origi teeing up Milner for an excellent drive into the bottom-right corner, Klopp swiftly bringing on Salah and Firmino to hunt a winner.
Firmino ensured Liverpool set a club record for the most points after 15 games of a league season, tucking in from close range after Van Dijk turned a Trent Alexander-Arnold free-kick back into the six-yard box.
Battling Burnley tried to snatch a point, but Alisson made a fine save to deny captain Mee, Shaqiri then finishing off a rapid counter-attack led by Salah to secure the points.