Against a big and physical Crawley team, the Lilywhites were forced to dig deep and won a much-needed three points thanks to Garner's 18th goal of the season.
The first chance arrived after five minutes as Paul Gallagher's volley from inside the box deflected off a visiting defender and the ball went inches wide.
In the 13th minute the hosts burst into the Crawley half and scored. Keith Keane crossed from the right-hand side and Garner nodded the ball home.
There was still little between the sides but Crawley, hoping to avoid a third straight defeat, could have levelled after 30 minutes when Mike Jones shot straight at goalkeeper Declan Rudd.
Garner should have doubled his tally just before half-time but could only head over the crossbar from Gallagher's cross.
Garner had another chance for his second goal at the start of the second half but the striker could not connect cleanly on the ball after getting in behind the defence.
Another chance followed as the Lilywhites began to dominate, this time Stuart Beavon flicked on a Lee Holmes cross inches past the post.
Preston, beaten just once in March, continued to push and would have been 2-0 up but for a fine Paul Jones save from Garner's blistering volley around the hour mark.