Skipper Carl Dickinson scored his first-ever Port Vale goal as they put Doncaster Rovers to the sword at the Keepmoat stadium.
Micky Adams made just one change with Richard Duffy replacing Chris Robertson at the back. Midfielder Michael O’Connor was judged fit to start the game. Colin Daniel made the Vale bench,
Doncaster had the first real chance on fifteen minutes through Nathan Tyson but Johnson pulled off a confident save.
On half an hour, a corner from O’Connor was headed by Chris Lines and as the ball went loose, it was turned in by Ben Williamson for his fourth goal of the season.
The Valiants doubled their lead seven minutes before half-time when Williamson fed Tom Pope and his curling shot beat the keeper.
On the stroke of half-time, Vale made it three as captain Carl Dickinson netted his first Vale goal and before the half-time whistle, Williamson came close to adding a fourth.
The second-half was less dramatic but credit was due to the Vale defence for keeping the Doncaster attack quiet.
The home side eventually got on the scoresheet with a quarter of an hour left when Kyle Bennett beat Sam Johnson with a long-range effort.
That goal sparked a more exciting closing period as Harry Forrester was shown a straight red card for an off-the-ball incident with ten minutes left.
Rovers did clip the bar in the closing moments but Vale held on for an excellent away victory and to record their first away victory against Rovers since 1980.
Vale: Johnson, Veseli, Duffy, McGivern, Dickinson, Birchall (Dodds), O’Connor (Brown), Lines, Marshall, Williamson (Jennings), Pope
Subs: Neal, Robertson, Daniel, Lloyd
Attendance: 6,437 (600 away)