Simon Grayson's men came into the clash at Deepdale off the back of six straight wins but made a disastrous start against their Lancashire neighbours at Deepdale.
Stephen Jordan opened the scoring for the visitors after just two minutes before a Scott Laird own-goal doubled Fleetwood's advantage shortly after.
The hosts appeared on course for defeat until Garner stepped up, wrapping up a hat-trick inside 20 second-half minutes.
Garner headed in twice either side of the hour before securing the winner and the match ball with a stunning half-volley to cap an impressive comeback and send Preston second.
Peterborough United had been the nearest rivals to leaders Bristol City but Darren Ferguson's side lost for the second time in a week as they also threw away a two-goal lead to lose 3-2.
Second-half efforts from Ryan Haynes, James O'Brien and Frank Nouble gave Coventry City their first win in four league games as Peterborough slipped to fourth.
Notts County took their place in the top three courtesy of Zeli Ismael's late winning penalty at Scunthorpe United.
The League leaders, Bristol City, needed a late Aaron Wilbraham goal to secure a 2-2 draw at struggling Barnsley while, at the bottom, Crewe Alexandra's mini-resurgence was ended by Sheffield United.
Steven Scougall got the only goal of the game at Gresty Road as Crewe ended with 10 men thanks to George Ray's late dismissal with Gillingham the only side in the bottom four to pick up a point.
Yeovil Town were beaten 3-0 at home by Rochdale and Peter Taylor's Gillingham had Leon Legge to thank for gaining a 1-1 draw against visitors Crawley Town.
Milton Keynes Dons, Swindon Town and Chesterfield slipped out of the congested play-off spots with the former two held to draws against Doncaster Rovers and Colchester United.
Chesterfield were beaten 1-0 by Walsall. Tom Bradshaw got the only goal after the game shortly after the hour mark with Oldham Athletic one of the sides to take advantage and move into the top six.
Early goals from Jonathan Forte and Mike Jones were enough to account for Bradford City, whose hopes of a comeback, following Andrew Halliday's consolation, faded when Rory McArdle was dismissed late on.
Elsewhere, Port Vale put three past 10-man Leyton Orient without reply - Darius Henderson sent off after 31 minutes following a tangle with Richard Duffy.
Thank you for reading 5 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1