Second-half goals from George Donnelly and Bobby Grant helped Rochdale beat Oxford to move into the play-offs.
The U's came close to breaking the deadlock early on, with Tom Craddock having a close-range header cleared off the line by Rhys Bennett.
They were made to pay when sub Donnelly rose highest to meet Grant's left-wing cross to put Dale ahead.
And Donnelly returned the favour when his driven cross was tapped home by Grant to seal the victory.
VIEW FROM THE DRESSING ROOM
Rochdale manager John Coleman told BBC Radio Manchester:
"The lads were under no illusions what was demanded of them and I think they delivered.
"We were a little bit edgy in the first half but we came through it.
"Give Oxford their due, they took the game to us, but we stuck to our guns and we just about shaded it in the end.
"Anyone who knows me knows I don't really like making subs. Sometimes they work, sometimes they don't, and tonight it worked for us."
Oxford United manager Chris Wilder told BBC Radio Oxford:
"No disrespect to the opposition but I think we played like the home side tonight.
"I'm struggling to find a way to explain how we have not won this game by two or three.
"We dominated the second half and chased the game and got done twice. We were the architects of our own down fall.
"The performance was pretty good and I think if we would have shown more quality from our front four then we would have gone home comfortable winners tonight.
"It is frustrating and we have to show the consistency in results and be better in the final third."
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +3:44
Foul by Jon-Paul Pittman on Jason Kennedy, free kick awarded. Free kick taken by Rhys Bennett.90:00 +1:52 Substitution
Substitution Phil Edwards on for Ashley Grimes.86:56
Assist by George Donnelly.86:56 Goal scored
Goal! - Bobby Grant - Rochdale 2 - 0 Oxford Bobby Grant fires in a goal from close range to the bottom left corner of the goal. Rochdale 2-0 Oxford Utd.86:10
Jason Kennedy takes a shot. Andrew Whing gets a block in.85:26
Corner taken left-footed by Peter Leven from the right by-line to the near post, clearance by Joe Rafferty.84:04
Inswinging corner taken left-footed by Peter Leven from the right by-line, comfortable save by Josh Lillis.83:27
Bobby Grant is flagged offside by the assistant referee. Indirect free kick taken by Ryan Clarke.81:48 Substitution
Substitution Jake Forster-Caskey goes off and Jon-Paul Pittman comes on.80:46
Foul by Tom Craddock on Rhys Bennett, free kick awarded. Josh Lillis takes the free kick.80:21
Unfair challenge on Peter Leven by Kevin McIntyre results in a free kick. Peter Leven takes the free kick.78:21
Tony Capaldi concedes a free kick for a foul on Ashley Grimes. Free kick taken by Andrew Tutte.77:12
Bobby Grant provided the assist for the goal.77:12 Goal scored
Goal! - George Donnelly - Rochdale 1 - 0 Oxford George Donnelly scores a headed goal from close in. Rochdale 1-0 Oxford Utd.76:12
The ball is swung over by Tony Capaldi.74:07
Shot from just outside the penalty area by Tom Craddock misses to the left of the target.73:23 Substitution
Substitution Dele Adebola leaves the field to be replaced by George Donnelly.71:06
Outswinging corner taken from the right by-line by Peter Leven.70:49
Tom Craddock takes a shot. Save by Josh Lillis.
The ball is sent over by Kevin McIntyre, Ryan Clarke makes a comfortable save.67:30
Handball decision goes against Andrew Tutte. Free kick crossed by Peter Leven, clearance made by Rhys Bennett.65:57
Shot by Bobby Grant from deep inside the penalty area misses to the right of the target.65:02
Simon Heslop takes a shot. Kevin McIntyre gets a block in.63:49
Unfair challenge on Simon Heslop by Kevin McIntyre results in a free kick. Free kick taken by Ryan Clarke.61:45
Free kick awarded for a foul by Jason Kennedy on Simon Heslop. Free kick taken by Michael Raynes.61:18 Substitution
Substitution Simon Heslop on for Alfie Potter.60:56
Sean Rigg has an effort at goal from outside the box which goes wide right of the goal.59:43
Dele Adebola has an effort at goal from just inside the box that misses to the left of the goal.59:02
Inswinging corner taken from the left by-line by Andrew Tutte, clearance by Michael Raynes.57:32
Ryan Edwards gives away a free kick for an unfair challenge on Tom Craddock. Peter Leven produces a strike on goal direct from the free kick.56:11
Headed effort from deep inside the area by Jason Kennedy misses to the left of the goal.55:21 Booking
Booking Alfie Potter receives a yellow card.55:08
Foul by Alfie Potter on Kevin McIntyre, free kick awarded. Indirect free kick taken by Kevin McIntyre.52:15
Handball by Kevin McIntyre. Free kick taken by Ryan Clarke.51:46
Bobby Grant takes a shot. Michael Raynes gets a block in.45:27
Corner taken left-footed by Peter Leven, Sean Rigg takes a shot. Rhys Bennett manages to make a clearance.45:01
The referee gets the second half underway.45:00 +0:15
Inswinging corner taken left-footed by Peter Leven, clearance made by Rhys Bennett.45:00 +0:07
The ball is crossed by Alfie Potter, clearance by Ryan Edwards.43:44
Andrew Tutte takes the free kick.43:44 Booking
Booking Michael Raynes goes into the book.43:38
Andrew Tutte fouled by Michael Raynes, the ref awards a free kick.42:04
Inswinging corner taken by Peter Leven, Johnny Mullins takes a shot. Save by Josh Lillis.41:31
Alfie Potter takes a shot. Blocked by Rhys Bennett.38:52
Tony Capaldi takes the indirect free kick.38:52 Booking
Booking Peter Cavanagh booked for unsporting behaviour.38:45
Peter Cavanagh gives away a free kick for an unfair challenge on Sean Rigg.37:37
Free kick awarded for a foul by Jake Forster-Caskey on Andrew Tutte. Andrew Tutte takes the free kick.37:06
Tom Craddock takes a shot. Save by Josh Lillis.34:31
Outswinging corner taken from the left by-line by Peter Leven.34:20
Andrew Tutte produces a right-footed shot from outside the penalty area and misses left.33:49
Free kick awarded for an unfair challenge on Johnny Mullins by Bobby Grant. Johnny Mullins restarts play with the free kick.33:17
Corner taken by Peter Leven from the left by-line, Headed effort from inside the area by Johnny Mullins misses to the left of the target.32:32
Outswinging corner taken by Peter Leven from the left by-line, Johnny Mullins takes a shot. Josh Lillis makes a save.31:50
Unfair challenge on Peter Leven by Jason Kennedy results in a free kick. Indirect free kick taken by Johnny Mullins.31:29
Foul by Sean Rigg on Rhys Bennett, free kick awarded. Ryan Edwards restarts play with the free kick.30:19
Close range header by Dele Adebola misses to the right of the target.29:15
Joe Rafferty crosses the ball, Johnny Mullins manages to make a clearance.25:35
Sean Rigg fouled by Joe Rafferty, the ref awards a free kick. Free kick taken by Tony Capaldi.24:18
Close range shot by Alfie Potter goes wide of the left-hand post.22:56
Peter Leven is adjudged to have handled the ball. Andrew Tutte restarts play with the free kick.21:23
Ashley Grimes concedes a free kick for a foul on Peter Leven. Ryan Clarke takes the free kick.20:30
Free kick awarded for a foul by Tom Craddock on Ryan Edwards. Indirect free kick taken by Josh Lillis.19:37
Alfie Potter takes a shot. Rhys Bennett gets a block in.17:47
Corner taken by Andrew Tutte from the left by-line, Shot by Bobby Grant from inside the six-yard box clear the bar.17:19
Joe Rafferty takes a shot. Save made by Ryan Clarke.13:19
The referee blows for offside against James Constable. Free kick taken by Josh Lillis.11:46
Unfair challenge on Michael Raynes by Dele Adebola results in a free kick. Ryan Clarke restarts play with the free kick.11:19
Josh Lillis fouled by Tom Craddock, the ref awards a free kick. Josh Lillis takes the indirect free kick.10:47
The ball is delivered by Joe Rafferty, save by Ryan Clarke.4:36
Free kick awarded for an unfair challenge on Peter Cavanagh by Jake Forster-Caskey. Joe Rafferty takes the indirect free kick.2:05
Shot by Tom Craddock from outside the box goes high over the target.1:02
Peter Leven decides to take the corner short, Tom Craddock produces a left-footed shot from just outside the penalty box that misses to the left of the target.0:27
Tom Craddock takes a shot. Blocked by Rhys Bennett.0:05
Jason Kennedy takes a shot. Save by Ryan Clarke.Half time
Half Time The referee calls an end to the first half.
Live data and text provided by our data suppliers