The Bantams fell to a last-gasp defeat at the Utilita Energy Stadium, losing 2-1 to play-off chasing Swindon Town.
Jack Payne’s 96th-minute penalty was enough for the promotion contenders to take all three points away from West Yorkshire.
It was the Bantams who started brightly and dominated large parts of the affair, in Mark Hughes' second game in charge.
The hosts had a chance to open the scoring in the first minute of the contest when the ball fell to Callum Cooke inside the penalty area, and his low effort had to be denied by Jojo Wollacott.
Moments later, City threatened again when Caolan Lavery ran forward before unleashing a left-footed curling attempt which curled narrowly over the crossbar.
Hughes’ men went close again when Matty Foulds’ low cross went all the way through to Andy Cook but the Bantams’ top goal-scorer had his effort saved by the legs of Wollacott.
The home side did then however hit the front, making their pressure pay in the 18th minute courtesy of the returning Gareth Evans.
The City midfielder drifted into the 18-yard box before taking the ball down on his chest and hitting a left-footed strike into the bottom corner of the net.
However, the lead only lasted three minutes when a cross from the left-had side was flicked into the bottom corner by Harry McKirdy, and Swindon's top goal-scorer levelled for the visitors.
The Bantams had a chance to regain the lead when Cook played in Gilliead, but his effort was once again saved by the leg of the goalkeeper.
Ben Garner’s men then had a big chance to take go in front when McKirdy’s cross to the far post picked out Josh Davinson, but he planted a free header wide of the goal as the scores remained level heading into the break.
After another strong start to the second period from City, it was the visitors who went close shortly before the hour mark when a deep cross found Ricky Aguiar whose shot had to be cleared off the goalline by Paudie O'Connor.
City then hit the woodwork twice in quick succession through headers by both Foulds and Yann Songo’o, as The Kop roared their side forward.
The away team then had a great opportunity to take the lead when Davison slotted the ball through to McKirdy who had to be denied by Alex Bass.
The game looked destined for a draw until the sixth minute of stoppage time when Bass bought down a Swindon attacker in the area, and referee Paul Howard pointed to the spot.
Substitute Payne stepped up from 12 yards and made no mistake, breaking City hearts and ensuring the visitors left Valley Parade with all three points in the final minute.
CITY: Alex Bass (GK); Luke Hendrie, Paudie O’Connor ©️ (booked 40’), Yann Songo’o, Matthew Foulds; Alex Gilliead, Elliot Watt, Gareth Evans (Levi Sutton 82’), Callum Cooke (Matthew Daly 90+1’); Caolan Lavery (Theo Robinson 75’), Andy Cook. SUBS (not used): Richard O’Donnell, Oscar Threlkeld, Fiacre Kelleher, Dion Periera,
GOALS: Gareth Evans (18’).
SWINDON: Jojo Wollacott; Rob Hunt, Jake O’Brien, Brandon Cooper, Akinwale Odimayo (Mathieu Baudry 71’); Ricky Aguiar, Louis Reed (booked 57’), Ellis Iandalo (booked 61’), Harry McKirdy (booked 64’); Jonny Williams (Jack Payne 77’), Josh Davison. SUBS (not used): Lewis Ward, Jack Payne, Jayden Mitchell-Lawson, Ryan East, Harry Parsons.
GOALS: Harry McKirdy (21’), Jack Payne (90+6 pen’).
REFEREE: Paul Howard.
ATTENDANCE: 15,008 (including 561 Swindon supporters).