Louis Dodds scored a dramatic winner as the Valiants came from two goals down to secure all three points at London Road.
Rob Page made just one change with Byron Moore coming in for Matthew Kennedy. AJ Leitch-Smith was missing through injury. Fit-again Jak Alnwick made the bench as Vale kept faith with Chris Neal.
The Valiants got off to a terrible start when the home side took the lead after just two minutes.
It got worse for Vale on the half-hour mark as loan defender Ryan Inniss left the field on a stretcher and was replaced by Ryan McGivern. It was pretty much backs to the wall from that point onwards as Chris Neal pulled off some good saves.
However, Neal was powerless as Williams made it two on 41 minutes to round up a thoroughly miserable first-half for the Vale.
The Valiants had a much better start to the second period as Byron Moore scored his fifth of the season after fine work from Foley and Dodds. Rob Page then brought on JJ Hooper for Theo Robinson and Hooper went close moments after coming on.
Vale then had other chances to equalise through Foley, Moore and Dodds but neither was able to find the back of the net. However, it was a much improved performance and Vale got a deserved equaliser five minutes from the end when the impressive Hooper scored a deserved second goal of his Valiants career.
Rob Page’s men dramatically took the lead for the first time in the match just two minutes from the end when Louis Dodds scored.
It was a tremendous second-half performance, in complete contrast to the first-half and kept Vale in with a chance of securing a play-off spot.
Vale: Neal, Purkiss, Duffy, Inniss (McGivern), Dickinson, Moore (Kelly), Grant, O’Connor, Foley, Dodds, Robinson (Hooper)
Subs: Alnwick, Birchall, Kennedy, Brown, Kelly