In a case of mistaken identity, video evidence showed Garner struck Anthony Griffith in an off-the-ball incident in the 13th minute but it was team-mate Neil Kilkenny who was dismissed.
Kilkenny protested his innocence and had to be persuaded to leave the field as his manager Simon Grayson remonstrated with referee Andy Madley.
Grayson responded by replacing veteran striker Kevin Davies with midfielder Keith Keane, but that did not prevent Preston taking a 30th-minute lead.
Garner skipped past the challenge of Chris Robertson before firing an unstoppable 18-yard shot into the top right-hand corner of Chris Neal’s net.
Neal’s opposite number Declan Rudd produced a brilliant save to deny Tom Pope a minute later, but that was Vale’s only serious threat of the first half.
Vale drove forward in search of an equaliser after the interval but got caught on the break when Neal conceded a 71st-minute penalty for tripping substitute Will Hayhurst.
Garner drove the ball low to Neal’s right to net his seventh goal in five games and Preston then defended impressively to see out the game in comfort.