Midfielder Filipe Morais gave the Bantams the lead on 54 minutes.
Hanson then netted three times in 16 minutes to keep Bradford in fifth, five points clear of seventh-placed Gillingham with two matches remaining.
Walsall have a game in hand but trail Burton by six points, having slipped to fourth as Millwall won at Bury.
Walsall interim boss Jon Whitney told BBC WM 95.6:
"It was not good enough. I have asked the players to have a look at themselves.
"I want them to go home and ask themselves 'Did you really do enough to challenge Bradford City? Did you do enough to want to get promoted to the Championship? Were you willing to put your head on the line?
"Sometimes that is what you have to do in football. It's not always about playing pretty football.
"We have to match them physically and we didn't do it second half. We capitulated after the first goal."
Bradford City strengthened their League One play-off position as James Hanson's second-half hat-trick helped dent Walsall's hopes of automatic promotion.