OXFORD United's unbeaten home record came to an end as Exeter City made the most of their chances to claim maximum points.
The visitors' counter-attacking game plan worked perfectly as a Jamie Cureton brace and one from Scott Bennett gave them a 3-0 lead early in the second half.
United roared back into the game with a penalty from Jake Forster-Caskey and Alfie Potter's second goal in four days to give them hope of avoiding defeat.
But John O'Flynn's well-taken goal restored the two-goal cushion and the hosts' hopes disappeared altogether when substitute James Constable was sent off for two bookings late on.
After changing the side around for the Johnstone's Paint Trophy in midweek, U's boss Chris Wilder reverted to the side which started the defeat at York.
Potter, Deane Smalley, Sean Rigg and Simon Heslop were all recalled, while Peter Leven made a surprise return to the bench.
City's game plan was clear from the opening minute, as they sat back looking to soak up United's attacks and hit them on the break.
Potter carved out the opening chance, spinning away from his marker and bursting into the box, but with two teammates well placed he scuffed a shot at goalkeeper Artur Krysiak.
City had barely been in the U's half when, on 11 minutes, they took the lead. A quick counter-attack saw Cureton advance virtually unopposed, before the veteran found the top corner from 20 yards.
Rigg had two efforts blocked and Simon Heslop trickled a shot wide as United attempted to find a quick equaliser.
But instead City extended their lead on 26 minutes in controversial circumstances.
The visitors were awarded a corner, despite Ryan Clarke's protests he had caught the ball without it going over the line. When the set piece was delivered Bennett got in front of his marker to bury a header into the net.
The goals did not alter the pattern of the game.
United got in plenty of encouraging positions, particularly out wide, but could not convert them into chances.
The referee awarded them a penalty 11 minutes before the break when Rigg was brought down by Kevin Amankwaah, but instantly cancelled the decision after spotting an offside flag against the U's winger.
A smart touch from Cureton nutmegged Michael Raynes and the veteran striker ran on to tuck a finish past Clarke, who got a hand to the shot.
The game looked over, but United gave themselves a lifeline within four minutes.
Damian Batt was upended by Craig Woodman in the penalty area and Forster-Caskey coolly dispatched from 12 yards to pull a goal back.
Hope turned into belief just after the hour mark, when United made it 3-2.
Krysiak came and missed Adam Chapman's free kick and when Jon-Paul Pittman headed back across goal Potter helped the ball into the net.
Smalley should have equalised within four minutes, when Pittman set up the striker, who stooped to head over from six yards.
It proved a costly miss, as City made the most of the let-off to score a fourth goal.
O'Flynn, who had caused problems all afternoon, got the better of Jake Wright and went on to beat Clarke.
United's challenge was ended eight minutes from time when they were reduced to ten men.
Constable, who had not long been on the pitch, picked up two soft bookings in as many minutes to leave the hosts a man down.
The game remained open until the final whistle, but Exeter comfortably held on for victory.
United: Clarke, Batt, Raynes, Wright, Capaldi, Heslop (Craddock 54), Chapman, Forster-Caskey, Potter, Smalley (Constable 72), Rigg (Pittman 60).
Unused subs: Brown, McGinty, Leven, Boateng.
City: Krysiak, Amankwaah, Baldwin, Coles, Woodman, Sercombe, Bennett, Oakley, Davies, O'Flynn (Doherty 84), Cureton (Bauza 57).
Unused subs: Tully, Keohane, Evans, Chanberlain, Moore-Taylor.
Attendance: 6,405 (695 visitors)