City 0, Walsall 2

It seems a lifetime since Kyel Reid was thrashing City’s goal of the season at the Bescot.

The winger’s spectacular long-range rocket blasted the Bantams into fourth spot in the autumn sunshine – and raised premature hopes that they could follow up one promotion with another.

As we have discovered since, that balmy afternoon was the high spot of the season.

Fast forward five months and Walsall gained their revenge at an unhappy Valley Parade, leaving City still in that League One survival mix.

Referee Keith Stroud last took charge at Wembley, where his final whistle signalled scenes of unbridled joy as promotion was secured.

This time it brought boos all round – at the end of a game when the home side failed to muster a single shot on target. It was that grim.

Walsall, like Shrewsbury on Saturday, had been out of form themselves. This was their first win in 11 games.

There were three City changes from the weekend and the biggest miss – at least until the last half hour – was James Hanson.

Both Walsall goals came after the striker had entered the fray but the Bantams are never the same side without his towering presence.

With the targetman’s back still causing an issue, Andy Gray got his first start at Valley Parade in a year. His only previous one this season was at Wolves – and that was in a hopeless cause after Nathan Doyle’s early dismissal.

There was also a surprise in midfield where Matthew Bates got the nod over Matty Dolan, who had felt ill over the weekend. Gary Jones came back in for the injured Doyle but Phil Parkinson went with the former Middlesbrough man’s experience alongside him.

The holding role was not alien to the defender, who played it regularly in his Premier League days, and Parkinson was looking for his positional discipline to allow Jones to roam.

When Jones and Dolan had partnered each other, Crewe had scored three and with Walsall operating a similar system of playing a deep-lying striker, that may have come into the manager’s thinking – even without Dolan’s sickness.

Bates was only declared fit late on after throwing up during training on Monday. Oliver McBurnie was not so lucky and a sickness bug ruled him out of a squad spot.

There were no such selection issues for Walsall. Nine of their unchanged team had started the first meeting five months earlier.

The visitors fashioned the first threat of the night after ten minutes. Andrew Taylor’s cross was only half-cleared as both City centre halves converged on the same ball.

But Adam Drury threw himself in the way of Adam Chambers’ goal-bound volley and Sam Mantom lashed the rebound high into the Kop.

City’s first attempt was an ambitious drive on the swivel from Aaron Mclean that flew well wide from 25 yards.

Andrew Davies then went close to scoring in a second successive game, meeting Jones’ free-kick with a thumping downward header that bounced past the far post with keeper Richard O’Donnell struggling.

Craig Westcarr found space to test Jon McLaughlin at the other end but his low shot was straight at the keeper.

Excitement was at a premium – the only consolation was that it wasn’t as bitterly cold as Shrewsbury three days earlier.

Rory McArdle almost put McLaughlin in trouble when he left a ball on the edge of the box that the keeper was not expecting. But he managed to recover and slide it away from the marauding Westcarr.

City needed more tempo to their play – at times it had the lethargic air of a pre-season friendly – and Kyle Bennett needed to run with the ball when he had the chance. When he did finally stretch his legs to go at left back Taylor, the cross let him down and was easily swept clear.

The half ended with an overhit Walsall free-kick curling over everyone and into the crowd – it summed up a dour 45 minutes. The few boos that rang out as the whistle sounded showed what the fans thought.

Adam Reach hardly featured at Shrewsbury and had another quiet half in his first game since extending his loan for a final month.

But the Middlesbrough winger briefly lifted the volume with a forceful run to start the second period. He won City’s first corner but, like much of what had gone on before, nothing came of it.

Bennett was making little impression on the other flank and did not do himself any favours when he appeared to back out of a 50/50 tackle in home territory.

His off night soon came to an end when Parkinson opted for Garry Thompson ten minutes in. The substitute had an instant chance to cross but lofted it behind the goal.

City’s second change on the hour created a much bigger buzz as Hanson was unleashed. Gray had not made a dent on the Walsall backline.

Hanson’s arrival kicked up the noise level for a while but still there was no hint of a proper threat on O’Donnell’s goal.

The same could not be said at the Bradford End as Walsall broke the deadlock after 68 minutes.

Taylor fired in a low cross from the left and Westcarr got a thick enough contact to divert it beyond McLaughlin for his 14th goal of the season.

It ended a personal drought that had gone on since the last time the Saddlers won two months ago.

City looked deflated and it needed a good save from McLaughlin to prevent sub James Baxendale making it two with a curler.

But Walsall had their tails up and Westcarr was a whisker away from converting Febian Brandy’s pass.

The Saddlers centre forward was relishing it – and doubled his tally 12 minutes from the end.

James McQuilkin and Baxendale combined to feed Westcarr on the edge of the City penalty area and he cut inside to fire over McLaughlin.

That prompted more frustration in the home stands and City’s frantic attempts to pacify the fans again failed to trouble the Walsall rearguard.

The supporters made their feelings abundantly clear when Stroud finally put everyone out of their misery.

Attendance: 12,165