The 23-year-old striker had Walsall 2-0 up inside 14 minutes, but Tyler Walker reduced the deficit on his first start for Forest.
Romaine Sawyers fired the League One side 3-1 ahead and – despite Michail Antonio’s brilliant late brace – up stepped Bradshaw to send the Saddlers through.
Sam Mantom’s early free-kick tested Forest keeper Dorus De Vries low down to his right. But moments later Lalkovic’s cross-shot was only palmed out by the Dutch stopper moments later and Bradshaw tapped the ball home.
The Saddlers doubled their lead three minutes later when Mantom’s terrific cross was fired home by Bradshaw.
Forest halved the deficit just after the half-hour mark when Jamie Paterson’s low cross was tapped home by Walker at the far post.
In first-half injury-time, former Saddler Paterson’s well-hit effort struck a post as Forest threatened to restore parity.
Walsall added to their lead when Sawyers lashed the ball home 10 minutes from time after De Vries had kept out Kieron Morris’ effort.
But Forest substitute Antonio’s superb run and wonderful finish within 60 seconds and then a cheeky backheel in injury-time drew Forest level.
The hosts pressed on and Kelvin Wilson was penalised for a foul on Bradshaw late on and he stepped up and sent De Vries the wrong way from the spot.