Crewe substitute Elliott Bennett 76th-minute goal ruined Lee Sinnott's first game in charge of Port Vale.
The game did not open until the second half with Simon Church threatening for Crewe and Vale's Dave McGoldrick testing the reactions of Ben Williams.
The Crewe keeper then pawed away a shot from former Crewe striker Luke Rodgers and saved well from Robin Hulbert, Craig Rocastle and Danny Whitaker.
And Bennett showed Vale how to finish, drilling home from Byron Moore's pass.
Port Vale: Anyon, McGregor, Pilkington, Westwood (Lowe 62),
Talbot (Tudor 83), Whitaker, Hulbert, Rocastle,
Atkinson (Harsley 46), Rodgers, McGoldrick.
Subs Not Used: Goodlad, Glover.
Crewe: Williams, Woodards, Baudet, McCready, Jones, Moore,
Rix (Bennett 58), Cox, Roberts, Church, Lowe (Miller 75).
Subs Not Used: fon Williams, Bopp, Matthew Bailey.
Booked: Rix, Bennett.
Goals: Bennett 76.
Ref: Richard Beeby (Northamptonshire).