James Constable won a late penalty, missed it, and then headed in an injury-time winner as Oxford United fought back in stunning fashion to earn victory at Broadfield Stadium last night.

The contest was in the 92nd minute – the ref having indicated five minutes of stoppage time – when Adam Chapman crossed from the left and Constable bravely headed in at the near post. In an unbelievably dramatic finish, Crawley's Charlie Ademeno broke clear and dinked a shot over goalkeeper Ryan Clarke for what he and the 1,319 crowd thought was a winner – only to see it trickle wide of the post.

Before that, United had looked as though they were heading for only their third defeat of the season after going behind early on. There were just seven minutes remaining when Chapman rifled a low shot into the net from 15 yards to make it 1-1.

The U’s had been a shadow of their old selves for much of the first half.

Yet they were transformed after the break by substitutes Constable, Alfie Potter and Onome Sodje. And it was Sodje’s flick to Constable which led to the penalty.

Constable was wrestled to the ground by Karl Broadhurst, who was booked. But the striker’s spot-kick was well saved low to his left by keeper Simon Rayner.

Minutes earlier, Sodje had been unlucky when his low shot came off defender Simon Rusk and bounced down off the underside of the crossbar.

It proved a rollercoaster night for Oxford’s fans.

There were three changes to the team, with Ross Perry at centre back for the suspended Luke Foster, Kevin Sandwith coming in for the injured Steven Kinniburgh at left back, and Franny Green returning up front after being cup-tied at the weekend.

Crawley went in front in the 15th minute when Michael Malcolm’s right-wing cross seemed to be deflected goalwards and Clarke pushed the ball out, only as far as Thomas Pinault, who followed up to score. It was an untidy goal to give away from Oxford’s point of view, but they responded with their most penetrative attack two minutes later, and almost equalised.

After a good break down the right, Jack Midson hit a volley on the turn from 12 yards, and Rayner produced a fine save, parrying it out to the right. Green’s follow-up effort ran across the face of the goal.

News that Yemi Odubade had put Stevenage ahead at Ebbsfleet was not what the visiting fans wanted to hear, and meant that Borough were in pole position.

There were some worrying signs for United in that the midfield were not getting into the game as they normally do, losing possession uncharacteristicly easily.

Had it not been for Clarke, the hosts might have gone two up. Again sloppy play allowed Pinault to get free, 25 yards out, and his drive was hit with real power, but Clarke saved superbly.

Chris Wilder had the players out early for the second half and he got them all together and lectured them in the middle of the pitch as to what he expected. James Constable was on for Midson, and Potter replaced Adam Murray, who had been disappointing.

Constable set up a chance for Simon Clist, who sliced his shot wide. This was already much better from the U’s, as it was them now forcing the issue.

Hand-in-hand with Oxford’s dramatic improvement, news was filtering through that Ebbsfeleet had equalised against Stevenage, and then taken the lead, with ex-U's midfielder Stefan Bailey getting both goals.

Green made way for Sodje, to provide some fresh pace before the pulsating finale.

Crawley Tn: Rayner 7, Rusk 6, Broadhurst 6, Quinn 7, Rents 6, Killeen 7, Pinault 8, Wilson 6, Smith, Ademeno 7 (Hutchinson 6, 65), Malcolm 6. Subs not used: Lokando, Carter, Jordan, King. Booked: Broadhurst.

Oxford Utd: Clarke 7, Chapman 7, Perry 7, Creighton 6, Sandwith 6, Bulman 6, Murray 5 (Potter 7, h-t), Clist 7, F Green 6 (Sodje 7, 62), Midson 6 (Constable 8*, h-t), Cook 6. Subs not used: Turley, Day. Booked: Creighton. Referee: Steve Creighton (Woodley) 6.