City could take plenty of positives from their home friendly against Doncaster Rovers this Saturday despite falling to their first defeat of pre-season.
The Bantams held their own against the Championship new-boys for vast periods of the contest but narrowly lost out in the end thanks to a late deflected goal credited to Rovers substitute Kyle Bennett.
In an extremely watchable pre-season contest, both sides created chances, but it was Doncaster who netted first when David Cotterill finished neatly in the area with a curling strike midway through the first period.
The second period continued in a similar vein but it was City who would strike next in slightly strange circumstances as the ball just about dropped over the line after Garry Thompson had charged down Doncaster 'keeper Johnny Maxted's attempted kick up field.
Despite further opportunities for both sides, Thompson's mildly unusual goal looked to have secured a draw from the friendly for City until James Coppinger's drive from just inside the area five minutes from time struck the head of Bennett to completely wrong-foot Jon McLaughlin and help the ball find the corner.
Bantams boss Phil Parkinson had selected a competitive eleven for the fixture against Rovers, with the vast majority who started Tuesday's win at Grimsby Town keeping their places.
The only changes saw Nahki Wells and Thompson come into the side at the expense of Alan Connell and Kyel Reid respectively.
Helped by the fact that the match was City's first on home soil of any kind since gaining promotion last May, Parkinson and his players received a tremendous standing ovation as they entered the field pre-kick off.
Both sides enjoyed early sighters in the contest, with Wells curling an effort a few yards wide from outside the area and former Bantam Dean Furman firing off target by a similar margin for Doncaster from the edge the box.
Mark Duffy got nearer to troubling Jon McLaughlin after thirteen minutes when he cut inside of James Meredith before drilling a low angled drive just past the 'keeper's near post.
Less than a minute later, however, James Hanson went equally as close when he headed a flighted cross from Thompson back across goal and barely inches away from Maxted's far post.
With the chances continuing to flow, Wells was the next to get himself in on the action when he ran at a retreating Rob Jones and into Doncaster's penalty area.
Upon arriving into the visitors' box, Wells struck for goal but his well-hit effort was straight at Maxted, who gathered up at the second attempt.
City threatened again in the twenty-first minute when Meredith's teasing cross found Hanson in the space in the middle. The giant striker was well placed just inside Doncaster's six yard box but the ball seemed slightly too high for him and he could only head clear over the bar while on the stretch.
Despite City creating some of the better chances up until that point, it was the Championship side who took the lead through Cotterill.
The Welsh winger worked a short corner with team-mate Duffy before curling an effort into the far corner from inside the area past an partially unsighted McLaughlin.
City nearly responded just four minutes later when Andrew Davies headed Rory McArdle's free-kick from deep down into the area but both Mark Yeates and Hanson saw efforts scrambled away from close range.
Yeates then curled a delightful inswinging free-kick from outside the area that narrowly beat McArdle and Hanson in the middle before flying past Maxted's far post shortly afterwards.
The Bantams stuck with the same eleven for the second period, although Rovers made two changes at the break, including introducing Billy Paynter, once a City loanee, to join Chris Brown in attack.
A quickly-taken short corner involving Cotterill and Furman saw the latter nearly catch City out only a few minutes after the restart. Furman drilled the ball across the box as the effort was deflected just wide of Bongani Khumalo, who was lurking by the far end of the six yard box.
With Rovers enjoying a decent start to the second period, Brown then sent a glancing downward header at McLaughlin following Tommy Spurr's cross into the box with fifty minutes gone.
Despite Rovers' early chances though, City should have really equalised just two minutes later when Thompson flicked on a ball over the top from Yeates to play Wells in on goal.
The Bermudian only had Maxted to beat, but his strike for goal from just inside the area was repelled by the left leg of the young Doncaster 'keeper.
Cotterill then went close himself with a free-kick just over the bar from around twenty-five yards out, but City were to find themselves level shortly afterwards in slightly unusual circumstances.
With Thompson breathing down his neck ,Doncaster defender Spurr played the ball back to his 'keeper Maxted in attempt to clear the visitors' lines.
Thompson was alert to the situation, however, and he managed to charge down Maxted's attempted kick up field to send the ball spinning up in the air and towards Doncaster's goal.
The ball eventually dropped down just over the line before spinning back into play, with the assistant referee over on the far side spotting what had happened and flagging for the goal.
With the scores now level, skipper Gary Jones was replaced by fellow midfielder Jason Kennedy just past the hour mark.
City made their second substitution of the afternoon around ten minutes later when Kyel Reid was introduced for Yeates, who received warm applause from his new fans as he left the pitch.
Seventeen minutes from the end Spurr nearly got his own back on Thompson for his part in City's goal when the Doncaster defender robbed the Bantams winger of the ball by the byline inside's Bradford area.
The Doncaster left-back cut the ball back for half-time replacement Bennett but, despite his effort beating McLaughlin, Meredith was on hand to clear kick just in front of his own line.
Shortly before City brought on Michael Nelson for Davies, Doncaster had another promising chance to score but Cotterill blasted over from around ten yards out after Paynter had laid Bennett's far post cross back into his path.
In an increasingly entertaining contest, City responded again when Stephen Darby dispossessed Cotteril just outside Doncaster's area and Hanson trickled a low effort a yard or so wide of Maxted's goal.
The Bantams' fourth and fifth changes of the afternoon came just over ten minutes from full time when Alan Connell and Ricky Ravenhill took the places of Wells and Meredith. Meredith's departure meant a move to full back for Nathan Doyle.
The game looked to be heading for a draw with time running out - probably a fair reflection of the game as well - but five minutes from the end Doncaster retook the lead of the friendly through a fortuitous deflection off Bennett.
The winger initially looked like he could have scored when he was played through on goal by a clever forward pass by Furman. Just as Bennett looked to get his shot away at McLaughlin's goal though, the recovering Doyle made a superb last-ditch tackle to deny him.
Sadly for City, however, the danger wasn't completely over as seconds later Cotterill crossed for James Coppinger to fire for goal and the attacker's effort struck off Bennett to completely wrong-foot McLaughlin and help the ball find the corner.
Connell, who was as this stage being partnered by fellow replacement Louie Swain following Hanson's substitution, could have snatched a second equaliser for City two minutes from the end but his first-time strike from Reid's cross whistled just wide of Maxted's goal.