OXFORD City suffered Emirates FA Cup heartbreak as they conceded 12 minutes from the end of extra time at Shrewsbury Town.

The Vanarama National League South side had matched their Sky Bet League One opponents throughout, but substitute Dan Udoh’s close-range effort proved the difference.

Both sides played the entire extra 30 minutes with ten men, after James Roberts and Aaron Pierre were both dismissed in the second half of normal time.

City offered their higher-division opponents few chances, but fell agonisingly short of a first crack at the third round of the Cup.

Boss David Oldfield made two changes to the side that started the first round win over Northampton Town, one of them enforced.

Captain Joe Oastler’s suspension meant Ben Gerring – who only signed on Friday – started at centre back, while Nana Owusu replaced Harvey Bradbury in attack.

New Shrews boss Steve Cotterill named a strong line-up for his first game in charge but City were not overawed, with Roberts taking on Pierre to force the first corner of the contest 11 minutes in.

The visitors’ front three of Roberts,  Owusu and Zac McEachran looked lively, while Gerring looked at home as the senior member of City’s back four.

It took Shrewsbury 42 minutes to carve their lower-division opponents open, but they could not make it count.

A long ball evaded Luis Fernandez and Shaun Whalley took it under control, with Ben Dudzinski standing tall to pluck the striker’s attempted lob out of the air.

City’s best opportunities came through a host of free-kicks in dangerous areas, but ex-Oxford United midfielder Josh Ashby’s delivery failed to reach his usual standards.

Shrewsbury brought on Scott Golbourne for Ethan Ebanks-Landell at the break, after the defender suffered a knock in the first half.

The visitors had to put their bodies on the line to block when Daniels fired in a fierce effort early in the half, while Sarkic kept out a long-range effort from Roberts at the other end.

Shrewsbury were beginning to look more threatening and Whalley fizzed a shot wide, with Oldfield responding by bringing on Elliot Benyon for Owusu.

The visitors were seeing less of the ball but continued to look bright in possession and had their clearest chance yet with just over 20 minutes left.

Roberts swung a cross towards the back post and Gerring directed his header on target, but keeper Matija Sarkic was equal to it and just about held on.

If anything City were getting stronger as the half wore on and Benyon saw an effort loop off Pierre and behind for another corner.

The impressive Gerring was forced off with cramp 15 minutes before the end, giving Dan Matsuzaka an opportunity in defence.

While the defender’s loss was unavoidable, Roberts’ was anything but.

Pierre appeared to have climbed over the striker to win the header, with the pair collapsing in a heap on the floor.

Roberts kicked out at his opponent and the defender reacted, who could not believe it when he was also shown the red card.

Shrewsbury almost snatched victory at the death when Marc Pugh lopped a shot towards the far corner, but Aaron Drewe was on hand to clear off the line for the second round in succession.

Harvey Bradbury replaced Zac McEachran at the end of normal time, allowing City a fourth substitution for the extra 30 minutes.

The game became more stretched as both sides began to tire, with Jason Cummings replacing Whalley for Shrewsbury and Oldfield bringing on Jacob Bancroft for Lewis Coyle.

Cummings and fellow substitutes Matt Millar and Udoh all went close late in the first period, with City forced into vital blocks.

The visitors had just 15 minutes to hold out before a penalty shoot-out, but they could not quite make it.

City were unable to get the ball away following Shrewsbury pressure and Pugh’s miscued shot went straight to Udoh, who fired home first time.

Shrewsbury Town (3-4-1-2): Sarkic, Williams, Ebanks-Landell (Golbourne 46), Pierre, Vela, Edwards (Millar 57), Norburn, Daniels, Goss (Udoh 79), Pugh, Whalley (Cummings 101).

Unused subs: Burgoyne, Tracey, Udoh, High, Cummings.

Booked: Goss, Cummings.

Sent off: Pierre.

Oxford City (4-3-3): Dudzinski, Drewe, Gerring (Matsuzaka 75), Fernandez, Hall, Fleet, Ashby, Coyle (Bancroft 103), Roberts, Owusu (Benyon 60), McEachran (Bradbury 90+4).

Unused subs: Grantham, Bradbury, Martinez, George.

Booked: Owusu, Fleet, Benyon.

Sent off: Roberts.