Crewe 0-3 Walsall
Craig Westcarr grabbed a brace as Walsall stunned Crewe at Gresty Road.
Westcarr got his first with a deflected shot in the 66th minute to give the visitors the lead.
The visitors doubled their lead three minutes later when Westcarr converted from the penalty spot after being fouled by Gregor Robertson.
Substitute James Baxendale coolly slotted home the Saddlers' third late on when one-on-one with Alex keeper Steve Phillips.
VIEW FROM THE DRESSING ROOM
Crewe manager Steve Davis told BBC Stoke:
"Extremely disappointed really. I didn't see that one [coming] after two decent performances.
"The disappointing thing today is we didn't show any fight. There wasn't enough out there who showed any character.
"The game was very tight up to the first goal. 0-0 at half-time was probably fair.
"But after that, once they scored the goal, we didn't show any fight to get back into the game."