Bradford led from David Syers' ninth minute goal at a corner but Steve Maclean forced the ball in from close range for a 77th-minute equaliser after James Constable's shot was saved by the legs of goalkeeper Lenny Pidgeley.
And Tom Craddock then nodded in a winner at the far post with seven minutes left after Constable's driven cross from the right had just eluded Maclean.
Peter Taylor's side had to soak up some intense pressure in the second half and they were indebted to Pidgeley, who saved well from Jack Midson, Craddock and Constable. Syers struck from close range when Robbie Threlfall's corner was headed down by Richard Eckersley, for his seventh goal of the season.
At times City's goal led a charmed life, with goalbound shots twice deflecting wide, but they also defended well, Rob Kiernan making a terrific block from Craddock's blast on one occasion.
But Oxford were rewarded for their sustained pressure as they chalked up their sixth win from the last seven games. For City, it was a second successive defeat after their shock 3-1 setback at home to Barnet last week.