Match ends, Port Vale 0, Walsall 5.
Port Vale 0-5 Walsall
Walsall's biggest win for more than five years at Port Vale proved not quite enough for automatic promotion as they finished third in League One.
Burton Albion's 0-0 draw at Doncaster ensured that they claimed second place and promotion to the Championship, ending a point clear of the Saddlers.
Walsall will meet Barnsley over two legs in their play-off semi-final.
Anthony Forde scored a goal in each half in the Potteries as Port Vale were swept aside.
Paul Downing, Tom Bradshaw and second-half substitute Sam Mantom, with a 30-yarder just seven minutes after coming on, also netted as Walsall recorded their biggest win since beating Crawley Town in April 2015.
The play-off semi-final first leg will be at Oakwell next Saturday (14 May, 17:30 BST) before the return at the Banks's Stadium (Thursday, 19 May, 19:45 BST).
Walsall's first-half goal burst in Burslem
Vale actually looked the more lively side in the opening exchanges, Walsall goalkeeper Neil Etheridge twice brilliantly coming to his side's rescue.
He saved from AJ Leitch-Smith, touching the 12-goal Vale top scorer's angled shot onto his right post, before parrying a ferocious effort from Sam Foley.
But Walsall had their shooting boots on too, triggered by Jason Demetriou's 35-yard piledriver against the crossbar.
Having failed to clear their lines from that effort, Vale then immediately conceded when Jak Alnwick could only parry another long-range effort from James O'Connor and Downing headed home. And it was 2-0 just three minutes later when Milan Lalkovic's shot was only half-saved by Alnwick and this time Walsall's 20-goal top scorer Bradshaw nodded in.
There was a third first-half goal to come after 38 minutes when Forde thundered home a swerving 30-yard right-foot shot. But they were not done yet, Forde and Mantom both netting after the break to complete the Saddlers' third straight win and only Vale's fourth home league defeat of the campaign.
Vale finished 12th, a rise of six places from last season, despite going down to their biggest defeat since a 5-0 loss at Bristol City in March 2014.
Vale's record home defeat remains the 10-0 Division Two loss to Sheffield United way back in December 1892, which is also the worst home defeat in Football League history.
Walsall interim boss Jon Whitney told BBC WM:
"I'm immensely proud of the players, the staff and the fans. The atmosphere was as good as I've known in my time in the club.
"I said to the players we can only control what we can control. We did our jobs and it wasn't meant to be. But now we have to keep believing.
"We're very upbeat. If you're going to be in the play-offs, the way it's worked out could not be better, in how we've built momentum over the last three games.
"We've won that final now and qualified for an even bigger tournament now. We've got the chance top go back to Wembley and lay a few ghosts."
- 4StreeteSubstituted forYatesat 56'minutes
- 6DuffyBooked at 45mins
- 5McGivernSubstituted forKellyat 45'minutes
- 8O'ConnorSubstituted forMooreat 70'minutes
- 11FoleyBooked at 60mins
- 15LalkovicSubstituted forCookat 85'minutes
- 18MorrisSubstituted forMantomat 64'minutes
- 9BradshawSubstituted forHiwula-Mayifuilaat 76'minutesBooked at 84mins
- Nigel Miller
- Shots on Target
Second Half ends, Port Vale 0, Walsall 5.
Corner, Walsall. Conceded by Jak Alnwick.
Attempt saved. Anthony Forde (Walsall) right footed shot from outside the box is saved in the bottom right corner.
Anthony Forde (Walsall) wins a free kick on the left wing.
Foul by A-Jay Leitch-Smith (Port Vale).
Corner, Walsall. Conceded by Richard Duffy.
Substitution, Walsall. Jordan Cook replaces Milan Lalkovic.
Jordy Hiwula-Mayifuila (Walsall) is shown the yellow card for a bad foul.
Foul by Jordy Hiwula-Mayifuila (Walsall).
Richard Duffy (Port Vale) wins a free kick in the defensive half.
Substitution, Walsall. Jordy Hiwula-Mayifuila replaces Tom Bradshaw.
Attempt missed. Tom Bradshaw (Walsall) right footed shot from the centre of the box is too high.
Corner, Port Vale. Conceded by James O'Connor.
Attempt blocked. Sam Kelly (Port Vale) right footed shot from outside the box is blocked.
Byron Moore (Port Vale) wins a free kick in the defensive half.
Foul by Rico Henry (Walsall).
Goal! Port Vale 0, Walsall 5. Sam Mantom (Walsall) right footed shot from outside the box to the top left corner.
Substitution, Port Vale. Byron Moore replaces Michael O'Connor.
Goal! Port Vale 0, Walsall 4. Anthony Forde (Walsall) right footed shot from the right side of the box to the bottom right corner.
Corner, Port Vale. Conceded by Neil Etheridge.
Attempt saved. JJ Hooper (Port Vale) header from the left side of the six yard box is saved in the top left corner.
Sam Foley (Port Vale) wins a free kick in the defensive half.
Foul by Romaine Sawyers (Walsall).
Substitution, Walsall. Sam Mantom replaces Kieron Morris.
Attempt saved. Rico Henry (Walsall) left footed shot from the left side of the box is saved in the centre of the goal.
Sam Foley (Port Vale) is shown the yellow card for a bad foul.
(Walsall) wins a free kick in the defensive half.
Foul by Sam Foley (Port Vale).
Attempt saved. Michael Brown (Port Vale) right footed shot from outside the box is saved in the centre of the goal.
Substitution, Port Vale. Adam Yates replaces Remie Streete because of an injury.
Foul by Milan Lalkovic (Walsall).
Carl Dickinson (Port Vale) wins a free kick on the right wing.
Delay over. They are ready to continue.
Delay in match Remie Streete (Port Vale) because of an injury.
Corner, Walsall. Conceded by Ben Purkiss.
Jason Demetriou (Walsall) wins a free kick in the defensive half.
Foul by Michael O'Connor (Port Vale).
Second Half begins Port Vale 0, Walsall 3.
Substitution, Port Vale. Sam Kelly replaces Ryan McGivern.