Match ends, Exeter City 1, Oxford United 2.
Oxford secured a League One play-off place with a narrow victory over Exeter City at St James Park.
Mark Harris' early goal put the visitors in front before Cameron Brannagan further eased any nerves with a penalty five minutes before half-time.
Millenic Alli pulled a goal back for Exeter, who end the season in 13th place.
But Oxford held on to finish fifth and are set to face Peterborough in the play-offs, with Bolton taking on Barnsley, in the hunt for the final Championship promotion spot.
Harris gave the visitors the lead on 12 minutes after winning the ball high up the pitch, racing through on goal to slide the ball home low to the right of keeper Viljami Sinisalo.
Eight minutes later, Sinisalo saved Elliott Moore's header on the line, but with half-time looming, Brannagan doubled the lead from the penalty spot, finding the bottom left corner after Josh Murphy was brought down in the area.
But seven minutes after the break, Exeter halved the deficit through Alli, who powered home Tom Carroll's corner, and that changed the momentum.
Oxford began to retreat, knowing they needed to win, and Moore was required to make a crucial intervention after Alli drove down the left and flashed the ball across goal, but they held on to keep their Championship dream alive.
It looked like Oxford would meet Bolton in the play-off semi-finals but a late Northampton equaliser at Barnsley meant they finished above the South Yorkshire side in fifth place.
Line-ups
Exeter
Formation 3-4-1-2
- 1Sinisalo
- 4AimsonBooked at 45mins
- 26SweeneySubstituted forRichardsat 78'minutes
- 3Jules
- 17WattsSubstituted forRankineat 45'minutes
- 6Carroll
- 12ColeSubstituted forKiteat 70'minutes
- 14Niskanen
- 20HarrisBooked at 90mins
- 25Alli
- 19CoxSubstituted forAitchisonat 45'minutes
Substitutes
- 2Purrington
- 16Kite
- 21Rankine
- 24Fitzwater
- 29Aitchison
- 30MacDonald
- 47Richards
Oxford Utd
Formation 4-1-4-1
- 1CummingBooked at 89mins
- 15StevensBooked at 84mins
- 5Moore
- 3Brown
- 12Bennett
- 8Brannagan
- 30DaleSubstituted forBrowneat 71'minutes
- 20RodriguesSubstituted forMcEachranat 71'minutes
- 19GoodrhamSubstituted forMcGuaneat 89'minutes
- 23MurphySubstituted forLeighat 89'minutes
- 9M Harris
Substitutes
- 6McEachran
- 10Bodin
- 11Browne
- 13Eastwood
- 17Henry
- 18McGuane
- 22Leigh
- Referee:
- Tom Reeves
- Attendance:
- 8,123
Match Stats
- Possession
- Home60%
- Away40%
- Shots
- Home10
- Away15
- Shots on Target
- Home1
- Away5
- Corners
- Home8
- Away2
- Fouls
- Home20
- Away9
Live Text
Post update
Full Time
Second Half ends, Exeter City 1, Oxford United 2.
Post update
Jake Richards (Exeter City) wins a free kick in the defensive half.
Post update
Foul by Marcus Browne (Oxford United).
Post update
Ilmari Niskanen (Exeter City) wins a free kick in the defensive half.
Post update
Foul by Marcus Browne (Oxford United).
Post update
Foul by Will Aimson (Exeter City).
Post update
Marcus McGuane (Oxford United) wins a free kick on the right wing.
Post update
Foul by Jake Richards (Exeter City).
Post update
Finley Stevens (Oxford United) wins a free kick in the defensive half.
Booking
Luke Harris (Exeter City) is shown the yellow card for a bad foul.
Post update
Foul by Luke Harris (Exeter City).
Post update
Greg Leigh (Oxford United) wins a free kick in the defensive half.
Post update
Foul by Millenic Alli (Exeter City).
Post update
Finley Stevens (Oxford United) wins a free kick in the defensive half.
Post update
Offside, Exeter City. Millenic Alli is caught offside.
Post update
Attempt blocked. Luke Harris (Exeter City) right footed shot from the left side of the box is blocked. Assisted by Millenic Alli.
Booking
Jamie Cumming (Oxford United) is shown the yellow card.
Substitution
Substitution, Oxford United. Greg Leigh replaces Josh Murphy.
Substitution
Substitution, Oxford United. Marcus McGuane replaces Tyler Goodrham.
Comments
Join the conversation
Must commend the TV commentator for Exeter - Patrick Baldwin...very insightful and articulate (from an Oxford fan).
Absolutely first class professionals.
On to play offs
Important like Chris Wilder....draw a line...season over...plan afresh....