Match ends, Walsall 2, Bradford City 1.
Walsall strikers Tom Bradshaw and Milan Lalkovic were both on target at Bescot to hand Bradford City their first defeat in 11 games.
The Saddlers led on 11 minutes when Lalkovic's shot deflected to Bradshaw, who drove low past Ben Williams.
City equalised when Billy Clarke headed down to Lee Evans, whose shot beat Etheridge's dive on 64 minutes.
But Walsall won it nine minutes later as Romaine Sawyers' pass set Lalkovic free to drill low past Williams.
Despite the top two Coventry City and Gillingham both dropping points, third-placed Burton Albion hammered Colchester, so Walsall remain fourth. But they and Burton both have a game in hand, this Tuesday night when Walsall face a derby trip to Shrewsbury.
Walsall manager Dean Smith told BBC WM 95.6:
"They're a good team and they've gone seven games without conceding a goal, and were 10 games unbeaten.
"But we make a habit of stopping teams in their tracks when they're on good runs.
"It was just an excellent display. In the first half we were outstanding.
"In the second half, they showed what a good team they are and came back at us and we had to withstand an awful lot."
Line-ups
Walsall
Formation 3-5-2
- 1Etheridge
- 6DowningBooked at 52mins
- 4O'ConnorBooked at 87mins
- 14Henry
- 2DemetriouBooked at 84mins
- 18MorrisSubstituted forFordeat 77'minutes
- 7Chambers
- 27Evans
- 15LalkovicSubstituted forCookat 85'minutes
- 10Sawyers
- 9Bradshaw
Substitutes
- 3Taylor
- 11Baxendale
- 12Forde
- 13MacGillivray
- 16Preston
- 17Flanagan
- 21Cook
Bradford
Formation 4-4-2
- 1Williams
- 2Darby
- 23McArdle
- 5ClarkeBooked at 71minsSubstituted forColeat 79'minutes
- 3Meredith
- 29McMahonSubstituted forBoweryat 89'minutes
- 4Evans
- 11Knott
- 17ReidBooked at 68minsSubstituted forMarshallat 79'minutes
- 9Hanson
- 10Clarke
Substitutes
- 7Marshall
- 8Liddle
- 15Leigh
- 21Bowery
- 30Cracknell
- 33James
- 44Cole
- Referee:
- Mark Brown
- Attendance:
- 4,668
Match Stats
- Possession
- Home59%
- Away41%
- Shots
- Home6
- Away10
- Shots on Target
- Home2
- Away5
- Corners
- Home0
- Away4
- Fouls
- Home12
- Away17
Live Text
Post update
Full Time
Second Half ends, Walsall 2, Bradford City 1.
Post update
James O'Connor (Walsall) wins a free kick in the attacking half.
Post update
Foul by James Hanson (Bradford City).
Post update
Corner, Bradford City. Conceded by Paul Downing.
Post update
Attempt blocked. Devante Cole (Bradford City) right footed shot from outside the box is blocked.
Substitution
Substitution, Bradford City. Jordan Bowery replaces Tony McMahon.
Booking
James O'Connor (Walsall) is shown the yellow card.
Post update
Hand ball by James Hanson (Bradford City).
Post update
Foul by Devante Cole (Bradford City).
Post update
George Evans (Walsall) wins a free kick in the defensive half.
Substitution
Substitution, Walsall. Jordan Cook replaces Milan Lalkovic.
Booking
Jason Demetriou (Walsall) is shown the yellow card.
Post update
Corner, Bradford City. Conceded by Anthony Forde.
Post update
Attempt missed. Romaine Sawyers (Walsall) right footed shot from outside the box is just a bit too high.
Post update
Attempt missed. Tony McMahon (Bradford City) right footed shot from the centre of the box is just a bit too high.
Post update
Foul by James Hanson (Bradford City).
Post update
Adam Chambers (Walsall) wins a free kick in the attacking half.
Substitution
Substitution, Bradford City. Devante Cole replaces Nathan Clarke.
Substitution
Substitution, Bradford City. Mark Marshall replaces Kyel Reid.