Jamie Cureton scored twice for Exeter, who held off an Oxford comeback to make it four straight league wins.
Veteran striker Cureton put Exeter ahead from the edge of the box and Scott Bennett nodded in a second.
An individual effort from Cureton made it 3-0, but back came the hosts with Jake Forster-Caskey's penalty and a close-range effort from Alfie Potter.
But John O'Flynn made the game safe on the counter attack and Oxford later had substitute James Constable sent off.
He was dismissed for two bookable offences, committed within a minute of each other.
Deane Smalley had earlier missed an excellent opportunity to level the scores at 3-3 and complete what had seemed an unlikely turnaround at the Kassam Stadium.
For 50 minutes, Chris Wilder's side were unable to recreate the form that saw them knock local rivals Swindon Town out of the Johnstone's Paint Trophy in midweek.
The second of Cureton's brace, which made it five goals in five games for the 37-year-old, sparked Oxford into life, but the U's could not avoid a first home defeat of the season.
Exeter are up to second in the table, a point behind leaders Gillingham.
VIEW FROM THE DRESSING ROOM
Oxford United manager Chris Wilder todl BBC Radio Oxford:
"We were the architects of our own downfall today. I thought last week was a one off but it wasn't.
"The first 10-15 minutes were spot on, we controlled the game made one or two poor decisions and then one of them obviously led to the first goal.
"We want to be an effective side but I thought we were just a pretty side in the first half.
"We didn't get beyond them and didn't play with enough width and could not get around the back of them. We were too content to just play in front of them. We didn't take a gamble and didn't flood the box.
T"he stuff we do day in, day out we didn't do today"
Exeter City manager Paul Tisdale told BBC Radio Devon:
"I made sure in the lead up to the game that the players knew this was going to be a very tough task. We'd have to be very focused on defending and sustaining long periods of pressure, which we did very well.
"It was a good day, but it didn't just happen. The players earned it through extremely tough work.
"We've got players who can score goals. Alan Gow was injured today so John O'Flynn came in.
"John can score goals, he can work hard and he created opportunities for others. He scored a very timely fourth and that was the crucial goal today."
- 01 Clarke
- 02 Batt
- 04 Raynes
- 06 Wright
- 17 Capaldi
- 07 Chapman
- 08 Heslop (Craddock - 55' )
- 14 Rigg (Pittman - 60' )
- 18 Forster-Caskey Booked
- 10 Smalley (Constable - 73' Dismissed after an earlier booking )
- 15 Potter
- 21 Brown
- 03 McGinty
- 24 Boateng
- 20 Leven
- 09 Constable
- 11 Pittman
- 29 Craddock
- 01 Krysiak
- 03 Woodman Booked
- 04 Bennett
- 05 Baldwin
- 06 Coles
- 16 Amankwaah
- 07 Sercombe
- 08 Oakley
- 11 Davies
- 12 Cureton (Bauza - 57' )
- 19 O'Flynn (Doherty - 84' )
- 24 Evans
- 02 Tully
- 37 Moore-Taylor
- 14 Doherty
- 22 Keohane
- 21 Bauza
- 31 Chamberlain
Live Text Commentary
Full Time The referee ends the match.90:00 +3:39
Unfair challenge on Tommy Doherty by Jake Forster-Caskey results in a free kick. Danny Coles takes the direct free kick.90:00 +3:31
Damian Batt crosses the ball, clearance made by Kevin Amankwaah.90:00 +2:16
Jake Forster-Caskey crosses the ball, Headed effort from inside the area by Tom Craddock misses to the right of the goal.90:00 +1:13
Kevin Amankwaah fouled by Alfie Potter, the ref awards a free kick. Kevin Amankwaah takes the direct free kick.89:24
Arron Davies produces a left-footed shot from the edge of the box and misses to the left of the target.84:41
Liam Sercombe has shot on goal from just outside the box which goes wide of the right-hand upright.83:23 Substitution
Substitution (Exeter) makes a substitution, with Tommy Doherty coming on for John O'Flynn.82:03
Shot from just outside the penalty box by Alfie Potter misses to the left of the target.80:51
Free kick taken by Ryan Clarke.80:51 Dismissal
Dismissal Red card for James Constable.80:18
Unfair challenge on Damian Batt by Guillem Bauza results in a free kick.79:46
Direct free kick taken by Pat Baldwin.79:46 Booking
Booking James Constable receives a yellow card.79:44
Matt Oakley fouled by James Constable, the ref awards a free kick.78:41
The ball is sent over by Arron Davies, Header by Matt Oakley from deep inside the penalty area misses to the left of the target.76:32
Alfie Potter takes a shot. Save by Artur Krysiak.75:44
James Constable has an effort at goal from deep inside the area missing to the left of the target.75:16
James Constable takes a shot. Blocked by Danny Coles.74:18
Craig Woodman restarts play with the free kick.
Booking Jake Forster-Caskey booked for dissent.74:15
Guillem Bauza fouled by Jake Forster-Caskey, the ref awards a free kick.72:34 Substitution
Substitution James Constable joins the action as a substitute, replacing Deane Smalley.71:41
Assist on the goal came from Liam Sercombe.71:41 Goal scored
Goal! - John O'Flynn - Oxford 2 - 4 Exeter John O'Flynn fires in a goal from inside the box to the bottom left corner of the goal. Oxford Utd 2-4 Exeter.69:44
Deane Smalley produces a left-footed shot from deep inside the area which goes wide of the left-hand post.69:21
Pat Baldwin concedes a free kick for a foul on Jon-Paul Pittman. Adam Chapman restarts play with the free kick.68:23
Tony Capaldi concedes a free kick for a foul on Matt Oakley. Pat Baldwin restarts play with the free kick.67:21
Headed effort from inside the area by Deane Smalley misses to the left of the goal.65:04
Liam Sercombe takes the outswinging corner, Header from deep inside the area by Danny Coles goes harmlessly over the crossbar.64:47
Outswinging corner taken right-footed by Craig Woodman from the right by-line to the near post, clearance made by Deane Smalley.64:06
Corner taken right-footed by Jake Forster-Caskey from the right by-line, clearance made by Kevin Amankwaah.62:38
Assist on the goal came from Adam Chapman.62:38 Goal scored
Goal! - Alfie Potter - Oxford 2 - 3 Exeter Alfie Potter grabs a headed goal from inside the box. Oxford Utd 2-3 Exeter.61:24
The ball is delivered by Adam Chapman,61:24 Booking
Booking Craig Woodman booked for unsporting behaviour.61:15
Free kick awarded for an unfair challenge on Damian Batt by Craig Woodman.59:50 Substitution
Substitution Jon-Paul Pittman joins the action as a substitute, replacing Sean Rigg.56:23 Substitution
Substitution Guillem Bauza is brought on as a substitute for Jamie Cureton.54:41
Unfair challenge on Tom Craddock by Kevin Amankwaah results in a free kick. Adam Chapman restarts play with the free kick.54:20 Substitution
Substitution Tom Craddock joins the action as a substitute, replacing Simon Heslop.54:03
Assist on the goal came from Damian Batt.54:03 Goal scored
Goal! - Jake Forster-Caskey - Oxford 1 - 3 Exeter Penalty taken left-footed by Jake Forster-Caskey and scored. Oxford Utd 1-3 Exeter.52:19
Unfair challenge on Damian Batt by Craig Woodman results in a Penalty.49:15
The assist for the goal came from John O'Flynn.49:15 Goal scored
Goal! - Jamie Cureton - Oxford 0 - 3 Exeter Jamie Cureton fires in a goal from inside the penalty box to the bottom right corner of the goal. Oxford Utd 0-3 Exeter.48:38
Jamie Cureton has an effort at goal from just outside the box which goes wide of the left-hand post.46:28
Adam Chapman takes the inswinging corner, clearance made by Matt Oakley.46:16
Deane Smalley takes a shot. Save by Artur Krysiak.45:01
The referee starts the second half.45:00 +1:09 Half time
Half Time The referee calls an end to the first half.43:44
Alfie Potter is flagged offside by the assistant referee. Artur Krysiak takes the free kick.42:58
Deane Smalley takes a shot. Blocked by Alfie Potter.41:33
Tony Capaldi crosses the ball, Header from deep inside the penalty area by Deane Smalley goes harmlessly over the crossbar.41:21
Sean Rigg produces a cross.40:28
Inswinging corner taken left-footed by Jake Forster-Caskey from the right by-line, clearance made by Arron Davies.40:18
Alfie Potter delivers the ball, Craig Woodman gets a block in.40:07
A cross is delivered by Tony Capaldi.39:13
Centre by Alfie Potter, Matt Oakley makes a clearance.38:59
Damian Batt delivers the ball.38:12
Simon Heslop produces a cross, save by Artur Krysiak.36:16
Arron Davies delivers the ball, clearance by Jake Wright.34:24
The assistant referee flags for offside against Sean Rigg. Artur Krysiak takes the free kick.34:03
Sean Rigg sends in a cross, clearance by Craig Woodman.33:44
Tony Capaldi delivers the ball, clearance by Craig Woodman.32:32
A cross is delivered by Damian Batt, Craig Woodman gets a block in.31:57
Free kick awarded for a foul by John O'Flynn on Jake Forster-Caskey. Adam Chapman restarts play with the free kick.29:33
Shot on goal by Adam Chapman from long range goes harmlessly over the target.29:22
The ball is delivered by Damian Batt, Kevin Amankwaah manages to make a clearance.26:03
Liam Sercombe provided the assist for the goal.26:03 Goal scored
Goal! - Scot Bennett - Oxford 0 - 2 Exeter Scot Bennett finds the net with a headed goal from inside the penalty area. Oxford Utd 0-2 Exeter.25:04
Liam Sercombe takes a outswinging corner to the near post,24:41
Free kick awarded for a foul by Sean Rigg on Kevin Amankwaah. Matt Oakley takes the free kick.23:08
Pat Baldwin has a header from inside the six-yard box and clears the crossbar.22:08
Foul by Damian Batt on Matt Oakley, free kick awarded. Free kick crossed right-footed by Arron Davies from left channel.21:35
Alfie Potter is caught offside. Free kick taken by Artur Krysiak.20:44
The offside flag is raised against John O'Flynn. Ryan Clarke restarts play with the free kick.19:40
Inswinging corner taken right-footed by Arron Davies from the left by-line to the near post, Ryan Clarke makes a save.17:57
Jamie Cureton produces a right-footed shot from inside the area that goes over the bar.17:21
Long range effort from Simon Heslop misses to the left of the target.16:22
Damian Batt crosses the ball, clearance by Pat Baldwin.16:11
The ball is delivered by Tony Capaldi.15:58
The ball is crossed by Simon Heslop, Pat Baldwin makes a clearance.14:12
Sean Rigg takes a shot. Danny Coles gets a block in.10:41 Goal scored
Goal! - Jamie Cureton - Oxford 0 - 1 Exeter Goal scored by Jamie Cureton from outside the box to the top left corner of the goal. Oxford Utd 0-1 Exeter.10:12
A cross is delivered by Adam Chapman, clearance by Danny Coles.9:14
The ball is swung over by Arron Davies, Jake Wright makes a clearance.8:12
Arron Davies fouled by Damian Batt, the ref awards a free kick. Craig Woodman restarts play with the free kick.7:23
A cross is delivered by Arron Davies, save made by Ryan Clarke.5:59
The ball is sent over by Alfie Potter, save by Artur Krysiak.4:33
Unfair challenge on Matt Oakley by Alfie Potter results in a free kick. Direct free kick taken by Kevin Amankwaah.0:27
Corner taken by Adam Chapman from the left by-line to the near post, Matt Oakley makes a clearance.0:00
The referee gets the game underway.
Live data and text provided by our data suppliers