OXFORD United staged a stunning comeback to score twice late on and beat Millwall on a penalty shoot-out in the Carabao Cup.

The home side scored all four spot kicks in the shoot-out, with John Mousinho netting the winner after Jon Dadi Bodvarsson had hit the crossbar and Simon Eastwood saved from Shane Ferguson.

It completed an incredible turnaround, with United trailing 2-0 with three minutes of normal time remaining.

Bodvarsson’s classy double had put the Sky Bet Championship side on course for the third round.

United’s best chance to score had been a penalty shout on Shandon Baptiste which was somehow missed by the officials just before half-time.

But out of nowhere they roared back with two goals in the final seven minutes.

Mark Sykes’s deflected 20-yard effort reignited the contest, before United were awarded a penalty in the final minute of stoppage-time.

James Henry stepped up to score against his former side and he struck again in the shoot-out, alongside George Thorne, Ben Woodburn and Mousinho.

It ended United’s three-game losing run and sent them into Wednesday night’s third-round draw.

With both sides having an eye on Saturday’s league games, they made eight changes apiece.

United’s incoming group included Baptiste, making his first appearance since January, while Thorne made the bench alongside 16-year-old Tyler Goodrham.

The pattern of the game did not take long to become establish.

Millwall looked long for the powerful front two of Tom Elliott and Bodvarsson, while United’s best moments all came when they moved the ball quickly on the break.

Elliott Moore made half a dozen clearing headers from inside his own box early on, but the first clear chance came when the hosts fell asleep over a set piece midway through the half.

It was taken short to Ferguson, who was given time and space to measure a cross for Shaun Hutchinson to head firmly downwards and force a fine save from Simon Eastwood diving low to his left.

United countered and when Baptiste was fouled 25 yards out, Rob Hall’s free-kick was smartly turned round the near post by Lee Steele.

The Lions goalkeeper was involved in the opening goal, on 29 minutes.

It was pure route one, with Elliott winning the flick-on against Moore to send Bodvarsson through. He got the better of John Mousinho, before beating an exposed Eastwood.

Baptiste, who looked bright despite his long lay-off, saw a low 20-yard shot well saved as United looked for an immediate response.

And the midfielder should have provided United with a big chance to equalise on the stroke of the interval, but somehow the officials missed Jason McCarthy’s blatant shirt pull.

Robinson was not amused and waited on the touchline for referee Craig Hicks when the half-time whistle blew seconds later.

Hall shot just wide from 25 yards at the start of the second half, but United’s task quickly got far tougher.

Bodvarsson bagged his second of the night when he got in front of Moore and expertly glanced a header into the far corner from McCarthy’s 52nd-minute cross.

He should have been celebrating a hat-trick when United were cut open a minute later, but with only Eastwood to beat the striker’s shot clipped the outside of the far post.

Even with the let-off it remained a tall order for the hosts, who were driven on by Baptiste until he came off midway through the half.

George Thorne replaced him to make a U’s debut, but clear chances were at a premium.

Bodvarsson headed another chance over from two yards under pressure from Mousinho as the game appeared to be petering out.

But Sykes’s deflected effort from 20 yards set up a grandstand finish, where Henry levelled the scores from the penalty spot in stoppage-time after Ben Woodburn had been fouled by Jason McCarthy.

That set up the shoot-out, where United were flawless to progress.

Oxford Utd (4-3-3): Eastwood, Long, Mousinho, Moore, Berkoe, Hanson, Baptiste (Thorne 67), Sykes, Hall (Woodburn 67), Mackie (Henry 77), Forde.

Unused subs: Stevens, Cadden, Dickie, Goodrham.

Booked: Sykes, Mousinho, Hanson, Berkoe.

Millwall (4-1-2-1-2): Steele, McCarthy, Hutchinson, Cooper, Ferguson, Williams, Mitchell, Molumby (M Wallace 90), O’Brien, Bodvarsson, Elliott (Thompson 63).

Unused subs: Bialkowski, Smith, Romeo, Mahoney, Leonard.

Booked: None.

Referee: Craig Hicks (Surrey).

Attendance: 3,693 (735 visitors).