There was ten minutes on the clock before the first attempt at goal. It came from the boot of Forest's young German Eugen Bopp, his 20-yard shot was inches over the visitors' crossbar.
Minutes later, it was Bopp who provided a cross from the left finding Forest's top goal scorer David Johnson. Johnson hit a volley on the edge of the visitors' box that failed to be on target.
Walsall marched on with dogged determination and got their rewards midway through the first half with two goals in three minutes.
The first came from Jorge Leitao. He benefitted from a Forest error and from a tight angle he drove his shot goalbound leaving Forest keeper Darren Ward no chance to save.
For the second goal the scorer became provider, Leitao finding Brazilian Junior with a low cross. Junior hit the ball first time six yards out leaving Ward motionless.
Forest's Michael Dawson, whose error was to blame for the first Walsall goal, had a chance to make amends but headed over from eight yards out unchallenged.
A battered Forest came out for the second half and in the opening five minutes nearly conceded a third.
A corner swung in by Australian Steve Corica found the towering Fitzroy Simpson, but his effort went wide.
Walsall played most of the second half defending their lead with 11 men behind the ball. They paid for their lack of attack when Forest broke with pace, Riccardo Scimeca's cross from the left to find Johnson who nodded past James Walker.
With ten minutes to go Forest were piling on the pressure, but this was to no avail as Walsall hung on to their well-deserved place in the next round.