Walsall's hopes of securing automatic promotion took a hit despite snapping a 13-game winless streak by defeating Crewe 1-0 on the final day of the League Two season.
George Hall's goal in the 59th minute seemed to set Walsall up for a top-three finish, but Bradford's last-minute winner against Fleetwood shattered their dreams.
This result means that Mat Sadler's team, who squandered a 12-point lead earlier in the season and had gone without a win in 13 matches since February 22, will now have to navigate through the play-offs.
Defender Taylor Allen came close with a powerful shot before George Hall was denied by Crewe keeper Filip Marschall, and the first half ended goalless.
Hall broke the deadlock after David Okagbue flicked on a long throw, allowing the Birmingham loanee to score with a well-placed volley past Marschall.
Saddlers' goalkeeper Tommy Simkin maintained the lead with a crucial save from Chris Long's shot, while Harry Williams had an opportunity to seal the game but was stopped by Marschall.
There was a scare at the other end when Crewe's substitute Fin Roberts missed a golden chance to equalize with a weak finish from Charlie Finney's cross.
Despite their efforts to secure promotion, Walsall's fate was sealed by the late drama at Bradford, forcing them into the play-offs.