Chris Maguire struck a brilliant free-kick from 23 yards in stoppage time to give the U's victory.
The Bantams, who had been undefeated in their first 15 games of the campaign, stay second in League One but they will be cursing Billy Clarke's penalty miss in the 21st minute.
Charlie Raglan tripped Timothee Dieng to concede the spot-kick, but Clarke smashed the penalty against the crossbar.
Before that, Maguire twice went close for the U's, with City keeper Colin Doyle pushing aside his 15-yard volley, and later saving the striker's header.
Bradford then began to control possession and Jordy Hiwula should have done better than sky a volley from 10 yards out.
Simon Eastwood saved at the feet of Clarke as the visitors continued to create opportunities.
Hiwula missed badly from four yards out in the second half before Oxford began to look dangerous.
Ryan Taylor had an effort saved and Chey Dunkley saw his header from a corner blocked on the goal line.
Just as the game entered second-half stoppage time, the referee penalised Romain Vincelot for pulling John Lundstram's shirt, and Maguire curled in the free-kick for his seventh goal of the season.
Reports supplied by the Press Association.
Match ends, Oxford United 1, Bradford City 0.
Second Half ends, Oxford United 1, Bradford City 0.
Goal!  Oxford United 1, Bradford City 0. Chris Maguire (Oxford United) from a free kick with a right footed shot to the bottom right corner.
Stephen Darby (Bradford City) is shown the yellow card for a bad foul.
John Lundstram (Oxford United) wins a free kick in the attacking half.
Foul by Stephen Darby (Bradford City).
Corner,  Oxford United. Conceded by Nicky Law.
Foul by Joe Rothwell (Oxford United).
Josh Cullen (Bradford City) wins a free kick in the defensive half.
Attempt missed. Timothee Dieng (Bradford City) header from the left side of the six yard box is just a bit too high.
Foul by Marvin Johnson (Oxford United).
Nicky Law (Bradford City) wins a free kick in the attacking half.
Corner,  Oxford United. Conceded by Timothee Dieng.
Attempt blocked. Cheyenne Dunkley (Oxford United) header from the right side of the six yard box is blocked.
Corner,  Oxford United. Conceded by Stephen Darby.
Attempt saved. Ryan Taylor (Oxford United) header from the centre of the box is saved in the centre of the goal.
Hand ball by Timothee Dieng (Bradford City).
Foul by Filipe Morais (Bradford City).
John Lundstram (Oxford United) wins a free kick in the attacking half.
Attempt missed. Kane Hemmings (Oxford United) left footed shot from the centre of the box is close, but misses to the left.
Billy Clarke (Bradford City) wins a free kick in the attacking half.
Foul by Joe Rothwell (Oxford United).
Corner,  Oxford United. Conceded by Timothee Dieng.
Substitution, Oxford United. Kane Hemmings replaces Alexander MacDonald.
Substitution, Bradford City. Marc McNulty replaces Jordy Hiwula-Mayifuila.
Substitution, Bradford City. Filipe Morais replaces Mark Marshall.
Corner,  Bradford City. Conceded by Cheyenne Dunkley.
Corner,  Bradford City. Conceded by Charlie Raglan.
Attempt blocked. Mark Marshall (Bradford City) right footed shot from the right side of the box is blocked.
Attempt missed. Josh Ruffels (Oxford United) left footed shot from outside the box is close, but misses to the left.
Ryan Taylor (Oxford United) is shown the yellow card for dangerous play.
Romain Vincelot (Bradford City) wins a free kick in the attacking half.
Foul by Ryan Taylor (Oxford United).
Attempt saved. Ryan Taylor (Oxford United) right footed shot from outside the box is saved in the centre of the goal.
Attempt missed. Jordy Hiwula-Mayifuila (Bradford City) right footed shot from a difficult angle on the left misses to the right.
Corner,  Oxford United. Conceded by Romain Vincelot.
Corner,  Oxford United. Conceded by Timothee Dieng.
Attempt saved. Alexander MacDonald (Oxford United) right footed shot from the centre of the box is saved in the centre of the goal.
Substitution, Bradford City. Matthew Kilgallon replaces James Meredith because of an injury.
Attempt missed. Chris Maguire (Oxford United) right footed shot from outside the box is close, but misses to the right.
Bradford lost their record as the country's only unbeaten side in all competitions after going down to a very late goal at Oxford.