City's three-match unbeaten run came to a halt with a 3-2 defeat at Cheltenham Town.
A breathless second period saw Gary Bowyer's men lead shortly after the restart - but ultimately lose out, in a frantic 45 minutes.
The first half played out an even contest, with the hosts starting the brighter before the Bantams fought back towards the end of the period.
Seven minutes in, Richard O’Donnell had to be alert to keep out the in-form Ryan Broom’s low effort from the edge of the area.
However, City grew into the contest and had several chances to snatch the lead, through Clayton Donaldson, James Vaughan and Ben Richards-Everton.
The Bantams drew first blood six minutes after the restart, though, through the returning Jermaine Anderson.
After Vaughan’s long ball upfield, Dylan Connolly’s driving run and centre was met by the 23-year-old who bundled in his first of goal of the season.
The hosts drew level just before the hour mark, when Broom picked out forward Gavin Reilly who hammered past O'Donnell.
The Robins spun the encounter on its head 10 minutes later when the ball fell to the feet of Jake Doyle-Hayes, inside the area, who kept his composure to finish.
Bowyer's men then pulled themselves back level with just under a quarter of an hour remaining, as Richards-Everton netted his first goal in claret and amber.
Harry Pritchard swung a teasing free-kick to the far post and the towering centre-helf rose the highest to nod past Scott Flinders in the home net.
However, the scoreline would again change, as Michael Duff's men landed the decisive blow, four minutes after City had drawn level.
Ben Tozer flicked home from Chris Hussey's free-kick and, despite the visitors pushing hard for another equaliser during the seven added-on minutes, the hosts held out for victory.
CITY: Richard O’Donnell; Kelvin Mellor (yellow 90+2'), Anthony O’Connor, Ben Richards-Everton (yellow 86'), Connor Wood; Dylan Connolly (Zeli Ismail 70'), Jermaine Anderson (yellow 19’) (Callum Cooke 70'), Matt Palmer, Harry Pritchard; James Vaughan (c) (yellow 45’), Clayton Donaldson (Aramide Oteh 86'). Subs (not used): Sam Hornby (GK), Paudie O’Connor, Shay McCartan, Daniel Devine.
GOALS: Anderson (51’), Richards-Everton (76’).
CHELTENHAM: Scott Flinders; Sean Long, Charlie Ranglan, Jacob Greaves, Chris Hussey; Ryan Broom (Chris Clements 75'), Ben Tozer (c), Conor Thomas (Daniel Bowry 88'), Jake Doyle-Hayes; Gavin Reilly (Alex Addai 81') (yellow 90+7), Luke Varney. Subs (not used): Rhys Lovett (GK), Tahvon Campbell, George Lloyd, Jonte Smith.
GOALS: Reilly (59’), Doyle-Hayes (69’), Tozer (80').
ATTENDANCE: 2,702 (289 visitors).
REFEREE: Sam Purkiss.