City's eight-match unbeaten run came to an end - following a 2-1 defeat at the hands of Crawley Town.
Two first-half goals did the damage for John Yems' men - who proved dangerous throughout.
The home side began the brighter and went close to opening the scoring when Ollie Palmer’s header rattled the underside of the crossbar - 13 minutes in.
It did not take the hosts much longer to break the deadlock, though, drawing first blood nine minutes later.
Palmer snuck in between Anthony O’Connor and Richard O’Donnell to send a half-volley crashing past Richard O’Donnell.
Crawley then doubled their advantage - again, through Palmer - five minutes before the interval.
Ashley Nadesan showed a burst of pace to evade Richards-Everton before squaring for his strike partner who made no mistake to convert.
The Bantams pulled one back with six minutes of normal time remaining, courtesy of Aramide Oteh.
A ball was swung into the area an - fellowing a goalmouth scramble - the on-loan Queens Park Rangers frontman forced the ball over the line.
Despite pushing for a late equaliser, City were denied as the Red Devils hung on for the three points.
CITY: Richard O’Donnell; Adam Henley, Anthony O’Connor, Ben Richards-Everton, Connor Wood; Dylan Connolly (Shay McCartan 68'), Matt Palmer, Jake Reeves (Hope Akpan 58’), Chris Taylor (Aramide Oteh 58’); Eoin Doyle, James Vaughan (c). Subs (not used): George Sykes-Kenworthy (GK): Paudie O’Connor, Jermaine Anderson, Jordan Gibson.
GOALS: Oteh (84').
CRAWLEY: Glenn Morris; Josh Dacres-Cogley, Jamie Sendles-White, Jordan Tunnicliffe, Josh Doherty; Panutche Camara, Dannie Bulman (c), Nathan Ferguson, Bez Lubala; Ollie Palmer (Ricardo German 84', yellow 90'), Ashley Nadesan (David Sesay 89'). Subs (not used): Michael Luyambula (GK); George Francomb, Ashley Nathaniel-George, Tarryn Allarakhia.
GOALS: Palmer (21’, 40’).
ATTENDANCE: 2,361 (509 visitors).
REFEREE: Neil Hair.