Garner struck with 10 minutes to go and in injury time to keep Preston level on points with fourth-placed Rotherham and a full 14 above sixth-placed Peterborough, who had taken the lead through Danny Swanson.
Paul Gallagher came close to breaking the deadlock for the hosts in the opening stages when he curled a 20-yard shot against the crossbar.
But it was Peterborough who took the lead through Swanson after 18 minutes when he placed a low curling effort into the bottom corner from 20 yards.
Preston rarely threatened until Gallagher found Neil Kilkenny inside the penalty area, with the midfielder rifling a low equaliser past Bobby Olejnik right on half-time.
Simon Grayson's side made a sluggish start to the second half and had Declan Rudd to thank for tipping wide Craig Alcock's header from a corner in the 56th minute.
But slowly the home side began to dominate possession and they got their reward when Gallagher's 12-yard curler came back off the post in the 80th minute for Garner to tap home before the striker fired Preston's third into the roof of the net in the closing stages.