Mark Hughes' Bantams bowed out of the Emirates FA Cup, with a 1-0 first-round defeat to Harrogate Town at the University of Bradford Stadium.
Matty Daly’s finish in the 9th minute sealed the victory for the visitors, who defended valiantly as City proved unable to level the game.
It was the visitors who broke the deadlock, as just before the 10th minute, the ball found Daly with space in City’s box.
The midfielder's effort looked to have been clawed onto the post by Harry Lewis, but rolled over the line and into the opposite corner to hand Harrgote the lead.
Hughes’ side were on top after Harrogate edged in front, however. Tyreik Wright saw two efforts sail just wide of Pete Jameson’s net as City went in search of an equaliser.
The visitors had an opportunity to double their advantage as half-time approached, when slips on the turf from Romoney Crichlow and Matty Platt allowed Danny Grant to race clear, though he could not find the target with his effort.
Harrogate did enough to dispel the Bantams’ pressure and ensure they went into the break with their narrow lead intact.
Simon Weaver’s men kept the hosts quiet at the start of the second period, and went close to doubling their advantage through Jack Muldoon, but his side-footed shot was well cleared by Romoney Crichlow.
Hughes' Bantams pushed in search for the equaliser as the clocked ticked.
Substitute Scott Banks drove at the visitors’ backline, curling an effort narrowly wide of Jameson’s goal moments before Crichlow was yards away from scoring a tap-in after just missing Matty Platt’s cut-back.
City endeavoured for a leveller deep into the injury time, with second-half changes adding extra momentum, but overall fell just short, meaning Harrogate booked their place in round two.
CITY: Harry Lewis, Brad Halliday, Matty Platt, Richie Smallwood, Lee Angol (Ryan East 68’), Alex Gilliead (Vadaine Oliver 86’), Matty Foulds, Harry Chapman (Andy Cook 45’), Romoney Crichlow, Dion Pereira (Scott Banks 68’), Tyreik Wright (Abo Eisa 68’). Subs not used: Colin Doyle, Yann Songo’o, Timi Odusina, Levi Sutton.
HARROGATE: Pete Jameson, Joe Mattock, Josh Falkingham, Warren Burrell, Danny Grant, Jaheim Headley, Alex Pattison (Josh Austerfield), Jack Muldoon (Josh Coley 90’), Kayne Ramsay, Matty Daly, Luke Armstrong. Subs not used: Mark Oxley, Miles Welch-Hayes, Sam Folarin, Tyler Frost, Kyle Ferguson, George Horbury.
GOALS: Daly (9’).
ATTENDANCE: 6,837 (461 from Harrogate).