Teenager Lewis Haldane came on as a late sub to salvage a point for Rovers.
He had been held back until the final ten minutes but with his first touch rolled a shot inside the far post after seizing a short pass from Simon Bryant almost on the byline.
It was his sixth goal in an eventful first season which has also seen him booked seven times.
Until he arrived Oxford had looked comfortable defending the early lead given them by Mark Rawle who has struggled to find a team place since being signed from Southend.
His breakthrough came in the 13th minute after Ijah Anderson had picked up a yellow card for a rash tackle which left Oxford's Scott McNiven clutching his face.
Mark Robinson's 30-yard free-kick cannoned off defender Dave Savage and fell perfectly for Rawle to lash a ten-yard shot well out of the keeper's reach.
For Rawle it was a seventh goal in four starts and, topped up by his confidence, he ran at Rovers' back three at every opportunity.
But he lost the ball too often for manager Ian Atkins, who pulled him off just after the hour sending on Jefferson Louis.
Louis in turn failed to see out the match giving way to Lee Steele as stoppage time approached.
When Julian Alsop was winning most of the high balls in the first half Oxford looked good, although they passed up a great opportunity to double their lead on 37 minutes.
Rovers were looking exposed when Danny Whitehead clipped the ball to James Hunt running through on his left. Hunt picked it up well but lifted an early shot off target.
Either side of the break Rovers had chances with a long dipping effort from effective midfielder Graham Hyde and a snap-shot from Lee Matthews.
Rovers looked a more cohesive unit in the second half but Oxford were so close to leaving with all three points when Whitehead bent an injury-time free kick just wide of goal.