Attendance: 2,274 (159 visitors)
Two goals in just over two minutes from hosts Oxford United confirmed City's exit from this season's Checkatrade Trophy at the quarter-final stage.
After enjoying the better of the first half, Stuart McCall's Bantams fell behind early after the restart when Romain Vincelot was penalised for barging into Rob Hall inside the box and Chris Maguire fired home the resulting spot-kick.
Oxford then increased their lead shortly afterwards in stunning fashion when Marvin Johnson beat Rouven Sattelmaier in the City goal with a fierce drive from distance.
To add to City's frustration, both Oxford goals came when McCall's men were temporarily down to ten men as Rory McArdle received five stitches in a head wound down the tunnel.
Jordy Hiwula headed in off the crossbar five minutes from the end of normal time with an effort that just bounced over the line to give City late hope of mounting a comeback.
On the night when City confirmed the transfer of fellow striker Charlie Wyke from Carlisle United, Hiwula's goal at Oxford was his tenth of the season so far.
Sattelmaier came up for free-kick in the sixth and final minute of injury time but Oxford hung on as substitute Ellis Hudson fired over from just outside the box.
FT: Oxford United 2 Bradford City 1
90+6min: Sattelmaier goes up for a late free-kick for City but the attack ends with Hudson fires over from just outside the box.
90min: There will be six minutes of time added on at the end of the tie. Vincelot seems to have been pushed forward to support City's attackers.
90min: YELLOW CARD - Johnson for a late tackle midway into City's half of the pitch.
90min: Sattelmaier makes a big save to keep City in the match. Johnson flicks into Maguire's path to send him through on goal but Sattelmaier makes himself big to block the ball away as the attacker tried to slot past the German shot-stopper.
86min: Meredith puts a delightful delivery into the six yard box and Nelson has to head behind by the far post for a corner.
85min: GOAL!!!!!!!!!!!!! Oxford United 2 Bradford City 1 - Hiwula has City break in the tie! Law's cross into the box is headed goalwards by Hiwula and the looping header bounces down off the crossbar and just over the line!
85min: SUB - Oxford bring on Canice Carroll for Hall.
84min: YELLOW CARDS - Vincelot and Hall are booked after a brief coming together following the award of a free-kick against the Oxford attacker.
80min: Dieng misses out on an potential interception, allowing Hall to receive the ball at his feet and run towards goal. Hall looks to burst into the box but last-man Vincelot is on hand to make the sliding tackle on the edge of the box.
77min: SUB - Oxford bring on Ryan Ledson for Ruffels.
76min: Johnson's teasing delivery into the middle flashes across Sattelmaier's goal and out for a throw-in over by the far side.
75min: An unsighted Dieng is dispossessed by Maguire, giving the striker a clean run on goal. Maguire tries to get a shot away at Sattelmaier's goal but a recovering Dieng gets back to make an important tackle inside the box.
74min: Lundstram is first to Hall's low cross into the middle but his side-footed effort rolls harmlessly wide of Sattelmaier's far post.
73min: SUB - The Bantams bring on Ellis Hudson for Clarke.
72min: Dieng heads narrowly over from Law's resulting corner delivery.
72min: Dunkley diverts the ball narrowly past his own near post after stretching to reach Meredith's low cross into the six yard box.
70min: City have the ball in the net through a close range finish Law but Hiwula is correctly flagged for offside just before he teed the midfielder up for the tap-in.
69min: Rothwell drives forward with the ball before firing narrowly over with an effort from outside the area.
65min: SUB - Oxford for John Lundstram for Hemmings.
63min: Marshall goes for goal with swerving effort from outside the area but the rising drive goes not too far over Eastwood's bar.
61min: Clarke's corner delivery is headed down into the mix by a stretching Vincelot. Marshall tries to get a shot away but eventually the ball is teed up to Josh Cullen. The midfielder tries to sort his feet out but his shot from just inside the box is blocked away.
57min: SUB - With McArdle still off the pitch, Stuart McCall has decided to act by bringing on Daniel Devine for the defender. Dieng will continue in central defence.
55min: GOAL - Oxford United 2 Bradford City 0 - The Bantams have a big task on their hands now as Johnson quickly doubles Oxford's lead with a thunderous strike from outside the area.
53min: GOAL - Oxford United 1 Bradford City 0 - Maguire smashes the resulting penalty down the middle to hand the hosts the lead.
52min: PENALTY TO OXFORD - With City down to ten men still, Romain Vincelot is penalised for bumping into Rob Hall as he ran at pace deep into City's penalty area.
50min: Nelson is able to carry on but McArdle races down the tunnel, presumably to receive stitches on a head wound. With Dieng moving to centre half as cover, City will have to play the next few minutes with only ten men.
49min: There is a break in play as Nelson and Rory McArdle receive treatment following a clash of heads from an Oxford corner.
48min: Maguire's driven low cross into the six yard box takes a touch off a City player on its way past Sattelmaier's far post and out for a corner.
46min: The Bantams restart the tie.
HT: Oxford United 0 Bradford City 0 - Half time at the Kassam Stadium after no extra minutes added on at the end of the first half.
39min: Ruffels shoots for goal from a decent position inside the box following a promising Oxford attack but the effort is blocked behind by an alert Stephen Darby.
36min: Marshall receives the ball from Clarke in a wide position inside the area. The winger eventually gets a shot away but the low effort is held by Eastwood by his near post.
29min: Rothwell has to head behind as Marshall looked to pick out Timothee Dieng with a threatening cross towards the far post. Meredith stoops to stand a diving header wide of the near post from the resulting corner.
26min: Meredith goes for goal after being picked out by Law from a quickly-taken City corner but the first time effort sails high and wide of Eastwood's goal.
24min: City counter-attack after their wall blocks a Chris Maguire free-kick from just outside the box. Law plays Marshall into plenty of space down City's left flank but the winger's progress is halted by Curtis Nelson as he gets into the box when the defender deflects the ball behind for a corner.
20min: Hiwula latches onto a loose pass by Joe Rothwell to drive forward towards Oxford's penalty area. Hiwula tries to knock the ball pas Chey Dunkley and burst through with a sight of goal but the Oxford defender reads the situation and clears. City come again when Meredith crosses low into the box but Hiwula's prod for goal is blocked by the frame of Dunkley.
15min: City keep the pressure on with another attack, as Law feeds Marshall into space in a wide position inside the box. Marshall turns into shooting space by the byline but his low effort from a tight angle is blocked by the legs of Eastwood.
15min: James Meredith sees a header from a Law corner kicked away from right in front of goal by a watchful Johnson. Close for City!
11min: City break forward at pace from just inside their own half, with Nicky Law driving into Oxford territory before feeding the ball wide to Mark Marshall. The City winger is under pressure from Marvin Johnson and a recovering Chris Maguire but still manages to get in a low strike from just inside the box that Simon Eastwood repels by his near post.
7min: Kane Hemmings latches onto a loose pass in City territory before firing in a low drive from just outside the box that Rouven Sattlemaier has to push around the post.
6min: Jordy Hiwula tries to play a one-two with Billy Clarke around the edge of the area but the striker slips at the vital moment as he looks to race onto the forward pass inside the area.
0min: Oxford kick off the tie.
OXFORD UNITED LINE UP:
Eastwood, Edwards, Nelson, Dunkley, Ruffels, Hall, Rothwell, Sercombe, Johnson, Maguire, Hemmings
Subs: Stevens, Lundstram, Ledson, Graham, Roberts, Carroll
Oxford United substitutions:
Lundstram for Hemmings (65), Ledson for Ruffels (77), Carroll for Hall (85)
Oxford United cautions:
Hall (84), Johnson (90)
BRADFORD CITY LINE UP:
Sattelmaier, Darby, McArdle, Vincelot, Meredith, Dieng, Cullen, Law, Marshall, Clarke, Hiwula
Subs: Doyle, Penney, King, Devine, Hudson
Bradford City substitutions:
Devine for McArdle (57), Hudson for Clarke (73)
Bradford City cautions:
Referee: D Whitestone
Assistant Referee: C Taylor
Assistant Referee: I Smedley
Fourth Official: G Horwood