Danny Rose scored the other goal to hand Rovers a fourth successive defeat that sees them remain two points from safety with two games left to play.
The visitors took the lead six minutes after the interval when a cross from Sam Long found Roofe, who executed his header in clinical fashion.
A minute later it was 2-0 as Oxford sliced their way through the Rovers defence with crisp passing move before Alex MacDonald found Rose who applied the finish.
The visitors wrapped up the points in the 68th minute when Danny Hylton set up Roofe to smash the ball home, prompting the angry exit of a large number of home supporters.
Marc Laird went close with a header and fellow substitute Jason Koumas flashed a shot just over the crossbar but a fourth game passed without Rovers finding the net.