A last-gasp strike from Josh Ruffels, deep into second-half stoppage time, meant Rovers left the Kassam Stadium pointless.
Ruffles’ low strike came in the sixth minute added on after a goalless 90 minutes which had seen Tommy Rowe hit a post and Ian Lawlor save a penalty.
Jordan Houghton returned to the starting line-up, replacing Matty Blair who had a calf injury. Alfie May also came back onto the bench.
The opening period was very open, with neither goalkeeper forced into too much action. Lawlor was the first to be called upon, tipping away James Henry’s powerful shot from the edge of the area after 17 minutes.
Rovers pushed towards the end of the half, with Rowe getting a header on goal from a James Coppinger corner after 32 minutes for Simon Eastwood’s first save of the game.
The midfielder was at the centre of everything good for the visitors as the half drew to a close, crossing for Marquis to force another stop from Eastwood and winning a free-kick which Coppinger just could not get over the wall.
There were no changes from either side at the interval, with Marquis and Ben Whiteman getting early shots away which went just side.
Marquis was an absolute workhorse again, and did brilliantly to collect a long clearance from Lawlor and hold up play, freeing up space before playing the ball across the area agonisingly in front of Beestin.
Rowe went closest of all for Rovers after 57 minutes, after being asked to take a more direct approach by manager Darren Ferguson at the break.
He ran into the area from the left, similar to how he had before scoring against Scunthorpe in his previous outing, before placing a shot which came back off the inside of the post and rolling agonisingly across the length of the goal.
That was as close as Rovers got to scoring, but it was not for a lack of effort. Rowe, moments after hitting a post, let fly with a long-range effort that Eastwood palmed away.
Oxford made the first change of the game just after the hour mark, bringing on Joe Rothwell for Henry. Ferguson made his first substitution shortly afterwards, with May making his return from a groin injury to replace Alfie Beestin.
The home side should have scored themselves when Ricardinho’s cross from the left found its way to Wes Thomas, but he bundled his effort wide at the near post.
Rovers continued to look the most likely to score, with Andy Butler heading just wide and Coppinger playing in Marquis who just could not fashion a shooting chance.
Then the home side were awarded a penalty after Jack Payne ran at the home defence. The home man went down under a challenge from Niall Mason, which the referee decided was inside the area.
Lawlor was shown the yellow card for disputing the decision, although replays suggested the offence was outside the area, but will have felt justice was done when he got down well to his left to keep Payne’s spot-kick out and pounce on the loose ball.
At this point it looked like both sides would have to settle for a point, though Rovers pushed and Coppinger again was inches away from playing Marquis through on goal after the official payed advantage following a foul on May.
The referee indicated three minutes’ time added on, and when May looped a header just over four minutes into injury time it looked like the game would finish goalless.
But there was to be a real suck punch as the home side counter attacked in the sixth minute of time added on, with Ruffels placing the ball into a bottom corner with a powerful low effort from about 30 yards.