Port Vale won a pulsating local derby 2-1 with 10 men to register their first victory in five games and inflict Crewe's first defeat in 12 matches.
Micky Adams' team made the stronger start and took a 13th-minute lead when Crewe allowed Doug Loft too much room to cross from the left. Loft measured his delivery to perfection and Louis Dodds timed his run to bury an unstoppable header past Rhys Taylor from eight yards.
Vale denied Crewe the space to put their passing game together, but the visitors almost levelled in the 33rd minute when Stuart Tomlinson made a tremendous save from Ashley Westwood.
A terrific game swung from end to end in the second-half until Marc Richards put Vale two up from a 74th minute penalty after Patrick Ada fouled Gary Roberts.
But Clayton Donaldson pulled one back from a penalty eight minutes from time after Anthony Griffith received a second yellow card and was sent off for handball.
Crewe poured forward in search of an equaliser during four minutes of stoppage time, but Vale held firm to put their faltering promotion challenge back on track.