With the man advantage, Oxford soon started to dominate the possession, but created few chances before half time, with Ryan Taylor heading over, before Liam Sercombe and Alexander MacDonald both missed the target.
Rovers tried to catch the visitors out with a quick attack at the start of the second half, with Chris Lines unleashing a long-range drive just moments after the restart, but his finish was straight at the keeper.
Oxford were also reduced to 10 men just before the hour mark as Sercombe picked up his second booking of the match for tripping Matty Taylor as he tried to break into the Oxford box.
Despite the sending off, Oxford were ahead just three minutes later when Pat Hoban crossed the ball in to Kemar Roofe on the edge of the box, leaving him to rifle the ball into the top corner from 20 yards out.
Roofe had a chance to repay the favour soon after as he delivered a free kick into the box for Hoban, but his header was punched clear by the keeper.
The hosts pushed for a late equaliser with Lee Brown setting up Tom Parkes for a header, which was saved, before Parkes saw his low finish go just wide a couple of minutes later, while Lines blasted another long-range effort high.
The result leaves Oxford fourth in the table, three points behind leaders Leyton Orient, while Rovers sit 10th.