City moved back into the Sky Bet League Two play-off places on Saturday, after a hard-fought 1-0 win at Walsall.
Top goalscorer James Vaughan was on hand seven minutes from time to help stretch City’s unbeaten run to three matches in all competitions.
The visitors started the brighter and went close to opening the scoring - via captain Vaughan - twice in the opening quarter of an hour.
First, his header from a Dylan Connolly corner was chalked off for a foul on Walsall goalkeeper Liam Roberts in the build up.
Then, the former Everton man rattled the post with another headed effort after Ben Richards-Everton had helped the ball on to him.
The second half took a similarly cagey pattern to the first, with City pushing forward but failing to find a way past their hosts.
Richard O’Donnell made a superb stop just after the hour mark to deny Rory Gaffney, whose bent effort from distance was heading for the far corner.
The Bantams were handed a golden opportunity to seize the lead with just over ten minutes remaining.
Vaughan was appended by Dan Scarr in the area but the Bantams skipper could not find the target from the penalty spot.
However, the 31-year-old atoned for his miss six minutes later, playing a vital role in his side taking the lead.
Harry Pritchard’s long throw-in was flicked on at the front post and a combination of Vaughan and Walsall's Liam Kinsella helped scramble the ball home.
Gary Bowyer’s men weathered late pressure from their hosts to secure their second win in two matches and move up to seventh place.
CITY: Richard O’Donnell; Kelvin Mellor (yellow 28’), Paudie O’Connor, Ben Richards-Everton, Connor Wood; Dylan Connolly (Shay McCartan 65’), Daniel Devine (Callum Cooke 63’), Matt Palmer, Harry Pritchard; James Vaughan (c) (penalty missed 76’), Clayton Donaldson. Subs (not used): Sam Hornby (GK), Anthony O’Connor, Jermaine Anderson, Adam Henley, Aramide Oteh.
GOALS: Kinsella O.G (83’).
WALSALL: Liam Roberts; Dan Scarr, James Clarke (c), Gary Liddle, Zak Jules (yellow 11’) (Callum Cockerill-Mollett 56’); Rory Holden (James Hardy 63’), Danny Guthrie, Liam Kinsella, Stuart Sinclair; Rory Gaffney, Caolan Lavery (Josh Gordon 78’). Subs (not used): Jack Rose (GK), Mat Sadler, Alfie Bates, Wes McDonald.
ATTENDANCE: 4,649 (621 visitors).
REFEREE: Anthony Backhouse (Cumbria).