OXFORD United grabbed a play-off place on the final day of the season thanks to a 2-1 win at Exeter City.

Mark Harris gave United the lead with 12 minutes on the clock, before a Cameron Brannagan penalty five minutes before half-time doubled the lead.

Millenic Alli ensured it would be a nervy second period when he scored seven minutes after the break, but the U’s held on and completed the job.

Des Buckingham made three changes to the side which drew 1-1 at home to Stevenage, as Elliott Moore, Joe Bennett and Owen Dale came in for Sam Long, Greg Leigh and Marcus Browne respectively. Long was absent from the squad due to illness.

The U’s were the better side in the first half, although it was the home side who had the first sight of goal when Alli fired wide from the right channel of the penalty box with two minutes on the clock.

At the other end, intricate play between Harris and Ruben Rodrigues on the edge of the area resulted in the latter squeezing through a gap in the Grecians backline, and then poking a shot just wide.

It took 12 minutes for United to nudge in front, doing so when Harris pinched the ball off Exeter captain Pierce Sweeney, before running through on goal and finishing coolly past Vil Sinisalo.

Grecians goalkeeper Sinisalo was then on hand to produce a super reflex save to claw away a Ciaron Brown header inside the six-yard box.

Midway through the first half, Tyler Goodrham nicked the ball and fed Josh Murphy, who cut inside from the left and warmed the gloves of Sinisalo from the edge of the box.

As the game ticked towards the half-hour mark, Brannagan swung in a free kick from deep, with the ball making its way to Brown, who fired a shot at the back post into the arms of Sinisalo.

The U’s were able to double their lead from the penalty spot with five minutes to go until the break, after Brannagan clipped a ball over the top for Murphy, who was tripped by Will Aimson. Brannagan stepped up, and despite Sinisalo going the right way, the spot kick was too far into the corner.

Harris then blazed over from 25 yards, as United were able to see out the half with relative comfort.

Grecians boss Gary Caldwell made a double switch at the break, and his side looked much more of a threat in the opening minutes of the second half, and seven minutes into the second period, Alli pulled a goal back when he headed in at the back post from a corner.

The home side pushed higher up the pitch in search of an equaliser, with that leaving gaps for the U’s to exploit on the break, and one such occasion, a Rodrigues shot was charged down, with the deflection falling to Harris, who directed an effort wide from just inside the penalty box.

Another counter-attack saw Goodrham play the ball infield from the left to Brannagan, who smashed his shot wide from distance.

Buckingham’s first changes came with 71 minutes played, as Josh McEachran and Browne replaced Rodrigues and Dale respectively.

The away end was then sent into raptures when news spread that Myles Peart-Harris had given Portsmouth the lead at Lincoln City, strengthening United’s grip on a top six spot.

Eight minutes of stoppage time were added on, and the U’s were able to see out the match in a professional manner.

Exeter City (4-4-2): Sinisalo; Aimson, Sweeney (Richards 78), Jules, Niskanen; Watts (Rankine 46), Cole (Kite 70), Carroll, Harris; Alli, Cox (Aitchison 46).

Unused subs: MacDonald, Purrington, Fitzwater.

Booked: Aimson, Harris.

Oxford United (4-3-3): Cumming; Stevens, Moore, Brown, Bennett; Rodrigues (McEachran 71), Brannagan, Goodrham (McGuane 89); Dale (Browne 71), Harris, Murphy (Leigh 89).

Unused subs: Eastwood, Henry, Bodin.

Booked: Stevens, Cumming.

Referee: Tom Reeves (West Midlands)

Attendance: 8,123 (1,259 away).