Sam Parkin's 79th minute penalty, after Steve Jones was felled by Rui Marques, looked set to end Leeds' 100% record, but goals in the final 10 minutes from Bradley Johnson and Jermaine Beckford won it for the visitors.
Goalkeeper Clayton Ince kept his place after his weekend aberration against Southend and Darryl Westlake continued at right-back, despite Rhys Weston's availability. Mark Bradley replaced the suspended Dwayne Mattis in central midfield.
Leeds remained unchanged from Saturday's win at Wycombe with midfielder Neil Kilkenny again on the bench.
The Saddlers weathered the early storm from the visitors as United prodded and probed, but could not find a way past the hosts back four.
There was plenty of possession from the Whites, although they were yet to show the attacking prowess they undoubtedly had.
The striker produced a stretching volley which looked destined for the bottom corner but he had not counted on Ince's intervention, as the goalkeeper pulled off a stunning save to tip the ball onto the post.
The missed chance galvanised the Saddlers, who began to rise to the challenge and started to attack with purpose.
Sam Parkin had a strong claim for a foul after falling under Marques' challenge, as he looked to break through but the official waved away his protests.
Leeds came back and Beckford wriggled clear but the offside flag and then skipper Mark Hughes on the line denied him.
Robert Snodgrass fired over on half-time and the visitors resumed the second period where they left off, Beckford heading straight at Ince 90 seconds after the restart.
The Saddlers were seeing more of the ball than the first half but had still to create any clear openings, with former Wolves loanee Shane Higgs largely untroubled in the Leeds goal.
But, with 11 minutes to go it was the hosts who made the breakthrough, when Parkin rammed home his second penalty in four days, after Jones was tripped by Marques.
The joy was short lived though, after Johnson was left unmarked at the far post to power in a header on 83 minutes, which Hughes could not stop from substitute Andy Robinson's corner.
Three minutes later the visitors turned the game on its head when Beckford worked a yard of space off Smith, turned and swept a superb low shot past Ince from 20-yards.
Walsall: Ince; Westlake, Smith, Hughes, Vincent; Till, Bradley, Richards (Taundry 28), Jones (Nicholls 85); Parkin, Deeney.
Subs Unused: Weston, Sansara, Roberts, O'Keefe, Gilmartin.
Leeds United: Higgs; Crowe, Kisnorbo, Marques, Hughes (Robinson 71), Snodgrass (Prutton 90), Howson, Doyle (Kilnenny 71) Johnson; Beckford, Becchio.
Subs Unused: Ankergren, Grella, Michalik, Showunmi.
Referee: A Taylor (Cheshire)