OXFORD United missed out on the chance to close in on the Sky Bet League One play-off places – but only after they pushed Bolton Wanderers all the way in an enthralling clash.

The hosts allowed their promotion-chasing opponents to build a two-goal lead, as Felipe Morais and Mark Beevers reacted quickest to Simon Eastwood parries.

Kane Hemmings pulled a goal back just before the break to breathe new life into United’s challenge, but Bolton restored their cushion on the hour with Chey Dunkley’s own goal.

Again the home side roared back, with Marvin Johnson hitting the woodwork before Chris Maguire halved the deficit with a superb free-kick.

They were denied a penalty when Conor McAleny went down in the box and Bolton hung on for dear life late on before Josh Vela struck in the final seconds.

Rob Hall, Johnson, Maguire and Hemmings all returned to the U’s starting line-up after sitting out Saturday’s 2-1 win against Scunthorpe.

The quartet had little opportunity to make an impression before the visitors raced into a fourth-minute lead.

Eastwood parried Gary Madine’s downward header, but the ball fell for Morais to slam a shot high into the net from close range.

It was a nightmare start for the U’s and with a lead to protect Bolton could put men behind the ball and make life difficult.

The hosts saw plenty of the ball and gradually warmed to their task as Hall curled one shot wide, while Ben Alnwick saved from John Lundstram.

But United’s momentum was halted by Bolton’s second goal, on 22 minutes.

The hosts disputed a free-kick awarded 22 yards out after Adam Le Fondre went down following an aerial challenge with Chey Dunkley, who appeared to have won the header fairly.

Morais’s free-kick was touched on to the crossbar by Eastwood, but again the goalkeeper looked up to see the ball fall to a white shirt. Beevers had reacted quicker than United’s defenders and tapped in from six yards.

It left United with a mountain to climb against a side who had barely got out of second gear.

Bolton, who had the best defensive record in League One, looked comfortable as United struggled to turn possession into anything threatening in the final third.

Michael Appleton’s side needed some inspiration to strike from somewhere – and their break arrived three minutes before half-time.

United pushed men into the box and Hall’s inswinging cross found, of all people, Joe Skarz at the back post.

The left back’s looping header caught Alnwick in no man’s land and the ball hit the crossbar, bounced off David Wheater and fell for Hemmings to force over the line at the second attempt.

The goal gave United a spring in their step and they were on top either side of the interval.

Bolton came under pressure and Alnwick had a nervous moment when he spilled Johnson’s low shot from range, but he gathered before Hemmings could latch on to the loose ball.

The visitors hit back and Eastwood spilled a corner straight to Madine, whose shot was blocked by Phil Edwards.

The goalkeeper made a better fist of saving a vicious shot by Chris Long a minute later, but was beaten for a third time on the hour.

A cross from Bolton’s right was flicked on to the back post, where Dunkley got in front of Madine but the centre back could only head the ball into his own net.

But United again responded after going two goals down.

Alnwick made a brilliant save to deny Johnson’s spectacular 30-yard effort, getting fingertips to divert the ball on to the inside of the post.

But 15 minutes from time another moment of quality beat the Bolton stopper.

After Lundstram was fouled 22 yards out, Maguire fired in an inch-perfect free-kick which flicked in off the post.

Within two minutes United thought they had been awarded a penalty when McAleny went to ground, but instead referee Ross Joyce booked the substitute for diving.

It looked a harsh decision but the home side continued to chase an equaliser.

Bolton had to withstand plenty of pressure, but as United pushed on deep into stoppage time Vela found the far corner of the net to seal a hard-fought win.

Oxford Utd (4-4-2): Eastwood, Edwards, Nelson, Dunkley, Skarz, Hall, Lundstram, Ruffels, Maguire, Johnson, Hemmings.

Subs used: McAleny (Skarz 64), Martinez (Hall 76), Rothwell (Lundstram 83).

Unused subs: Stevens, Ribeiro, Raglan, Sercombe.

Booked: McAleny.

Bolton Wand (3-5-2): Alnwick, Dervite, Wheater, Beevers, Morais, Vela, Pratley (Karacan 61), Spearing (Osede 76), Taylor, Le Fondre (Long 34), Madine.

Unused subs: Howard, Moxey, Henry, Clayton.

Booked: Beevers.

Referee: Ross Joyce (Cleveland).

Attendance: 7,146 (575 visitors).