The Saddlers suffered their heaviest defeat of the season as goals from Paul Caddis, a double from David Ball and substitute Eion Doyle gave the home side victory.
With eight minutes on the clock, it was Liam Roberts who was called into action first as O’Brien worked himself some space on the edge of the box and the Saddlers keeper was on hand to tip it over the bar.
After 19 minutes, Andy Cook should have put Walsall ahead. The ball was set back to Luke Leahy who curled in a fantastic cross to the back post but Cook couldn’t direct his header past Richard O’Donnell who somehow managed to palm the ball into the air and collect at the second attempt.
But six minutes before half-time the home side took the lead. O’Brien got in down the left-hand side and his cut-back found the onrushing Caddis at the back post and he tucked it into the bottom corner to give Bradford the lead.
One minute before half-time, there was another fantastic chance for Cook. Yet again Leahy found Cook six yards out but his header cannoned back off the crossbar.
In the second half, Bradford turned their chances into goals as Ball picked up the ball just inside the box and his low effort took a deflection off defender Russell Martin and squirmed under Roberts.
Just after the hour mark, the Bantams added another as the ball fell to Ball again just inside the area in a central position and he placed the ball into the roof of the net.
With seven minutes left, substitute Doyle was picked out on the edge of the six-yard box and his calm finish flew past Roberts as City walked away with all three points and climbed off the bottom of the table.