The Bantams fell to a stoppage-time equaliser, as they were held to a 2-2 draw by Gillingham at the University of Bradford Stadium.
The visitors took the lead in the first half through Timothée Dieng, but a second-half brace from Andy Cook put the hosts, backed by over 18,000 Bantams, into a lead with just over five minutes of normal time remaining.
However, a Oli Hawkins header deep into eight minutes of added time denied the hosts all three points, as the Gills headed back to Kent with a share of the spoils.
The Bantams came close to scoring the opening goal through their No.9 early on, but the frontman's shot was cleared off the line by the visitors' captain Max Ehmer.
After a bright start, however, it was the Gills who drew first blood in the 12th minute through Dieng. The midfielder won the ball back just inside City's half, before driving forward and finding the bottom corner.
The Gills came close to doubling their lead if not for a block from Brad Halliday, as they continued to stream forward in a first half where the hosts struggled to find their rhythm.
City dominated the majority of the second half, and levelled the scoreline within minutes of the restart, through Cook.
The division's leading goalscorer met Liam Ridehalgh’s cross to head into the ground and past Glenn Morris to even things up for the hosts.
Only minutes later, the Bantams came inches from taking the lead.
Jamie Walker's effort flew just wide of the post after some great play from Banks on the left-hand side, as City looked to build momentum heading into the final half-hour.
The away side remained a threat on the break, and almost found a goal however Harry Lewis was on hand to block Robbie McKenzie's effort at his near post.
The Bantams continued to put the visitors under pressure, as Scott Banks asked questions of the Gills' backline, forcing a smart save from Morris.
It was the Crystal Palace loanee who won City's penalty, giving them a golden opportunity to take the lead with eight minutes of normal time left, as his driving run into the 18-yard-box drew a foul from McKenzie.
Cook stepped up and coolly added his 29th of the campaign, sending Morris the wrong way and hammering into the bottom corner to cue pandemonium in The Kop.
City looked to see out the three points, but Neil Harris' outfit dramatically grabbed a late equaliser in the 97th minute through Hawkins, who scrambled home from a deep corner.
City were unable to fight back and find a winning goal, meaning both sides came away with a point.
CITY: Harry Lewis, Brad Halliday, Liam Ridehalgh, Richie Smallwood (C), Andy Cook, Jamie Walker (Matt Derbyshire 90’), Alex Gilliead, Scott Banks (Matty Platt 90’), Romoney Crichlow, Thierry Nevers (Emmanuel Osadebe 62’), Sam Stubbs. Subs not used: Colin Doyle, Tolaji Bola, Ryan East, Dara Costelloe.
GOALS: Andy Cook (46’, 83’ pen).
GILLINGHAM: Glenn Morris, Cheye Alexander, Max Ehmer (C), Alex MacDonald (Oliver Hawkins 72’), Robbie McKenzie (David Tutonda 85’), Dom Jefferies, Ethan Coleman (Jayden Clarke 85’), Tom Nchols, Conor Masterson, Timothée Dieng, George Lapsile. Subs not used: Jake Turner, Will Wright, Josh Chambers, Tristan Abrahams.
GOALS: Timothée Dieng (12’) Oli Hawkins (90+7’).
ATTENDANCE: 18,501 (363 Gillingham supporters).