Match ends, Shrewsbury Town 3, Sheffield Wednesday 2.
Jack Grimmer scored an injury-time winner as League One strugglers Shrewsbury twice came from behind to beat Sheffield Wednesday.
Lewis McGugan's 35-yard free-kick put the Championship side ahead before Jean-Louis Akpa Akpro levelled.
McGugan again struck from distance only for substitute Shaun Whalley to pounce after Akpa Akpro's penalty was saved.
In an amazing finale, Grimmer headed home in the 97th minute to put the underdogs through to the fifth round.
It is the first time in 25 years that Shrewsbury - who beat Championship side Cardiff in the previous round - have reached the last 16.
Leading 2-1 going into the final five minutes, Championship promotion hopefuls Wednesday could have been forgiven for thinking they had all but secured their cup progress.

But the hosts, who enjoyed plenty of possession and had 11 shots on target - six more than their opponents - refused to cave in.
Akpa Akpro was tripped by Vincent Sasso in the dying minutes and, although Lewis Price saved the penalty, Whalley converted the rebound.
On-loan Fulham defender Grimmer then sparked jubilant celebrations when he headed in Scott Vernon's cross, sending relegation-threatened Shrewsbury into the fifth round for the first time since the 1990-1991 season.
What they said
Shrewsbury manager Micky Mellon: "To have this club involved in games like this and challenging with Sheffield Wednesday to get into the fifth round of the cup is where we should be.
"We were every bit as good in that second half as we have been poor in other games. We worked very hard on our game plan on the training pitch and all the players stuck to it.
"People are asking for attacking football. I cannot do any more than my right-back getting on the end of a cross in the 97th minute!"
Sheffield Wednesday manager Carlos Carvalhal on the club's official website: "We did everything we could to get to the next round, and I will make no excuses, but our priority is the Championship.
"We will now fight 100% to focus on doing well in the league.
"It was also good for us to have players back in this game, as they can help us more in the second half of the season."
Line-ups
Shrewsbury
Formation 3-5-2
- 1Leutwiler
- 31SmithSubstituted forWallaceat 78'minutes
- 4Whitbread
- 20Knight-PercivalBooked at 68mins
- 15GrimmerBooked at 37mins
- 29Cole
- 6BlackSubstituted forWhalleyat 79'minutes
- 22Clark
- 12Brown
- 26Akpa-AkproSubstituted forVernonat 90+1'minutes
- 19Mangan
Substitutes
- 3Sadler
- 10Whalley
- 16Vernon
- 17Ogogo
- 21Halstead
- 30Jones
- 38Wallace
Sheff Wed
Formation 4-4-2
- 34Price
- 2Palmer
- 3Turner
- 23Sasso
- 12Bennett
- 24SougouSubstituted forWallaceat 71'minutesBooked at 87mins
- 6Semedo
- 10McGugan
- 7MatiasSubstituted forLeeat 78'minutes
- 14HooperSubstituted forNuhiuat 61'minutesBooked at 84mins
- 18Lucas JoãoBooked at 89mins
Substitutes
- 9Nuhiu
- 11Bus
- 20Lee
- 25Dawson
- 33Wallace
- 36Pudil
- 41Bannan
- Referee:
- Paul Tierney
- Attendance:
- 5,699
Match Stats
- Possession
- Home42%
- Away58%
- Shots
- Home11
- Away11
- Shots on Target
- Home7
- Away5
- Corners
- Home4
- Away5
- Fouls
- Home11
- Away15
Live Text
Post update
Full Time
Second Half ends, Shrewsbury Town 3, Sheffield Wednesday 2.
Goal!
Goal! Shrewsbury Town 3, Sheffield Wednesday 2. Jack Grimmer (Shrewsbury Town) header from the centre of the box to the bottom left corner. Assisted by Scott Vernon.
Post update
Corner, Sheffield Wednesday. Conceded by Zak Whitbread.
Post update
Attempt missed. Lewis McGugan (Sheffield Wednesday) right footed shot from outside the box is just a bit too high.
Post update
Scott Vernon (Shrewsbury Town) wins a free kick in the defensive half.
Post update
Foul by Michael Turner (Sheffield Wednesday).
Substitution
Substitution, Shrewsbury Town. Scott Vernon replaces Jean-Louis Akpa-Akpro.
Booking
Lucas João (Sheffield Wednesday) is shown the yellow card for a bad foul.
Post update
Foul by Lucas João (Sheffield Wednesday).
Post update
Shaun Whalley (Shrewsbury Town) wins a free kick in the defensive half.
Goal!
Goal! Shrewsbury Town 2, Sheffield Wednesday 2. Shaun Whalley (Shrewsbury Town) right footed shot from the centre of the box to the bottom left corner.
Post update
Penalty saved! Jean-Louis Akpa-Akpro (Shrewsbury Town) fails to capitalise on this great opportunity, right footed shot saved in the centre of the goal.
Post update
Penalty conceded by Vincent Sasso (Sheffield Wednesday) after a foul in the penalty area.
Post update
Penalty Shrewsbury Town. Jean-Louis Akpa-Akpro draws a foul in the penalty area.
Post update
Corner, Shrewsbury Town. Conceded by Vincent Sasso.
Booking
Atdhe Nuhiu (Sheffield Wednesday) is shown the yellow card for a bad foul.
Post update
Foul by Atdhe Nuhiu (Sheffield Wednesday).
Post update
James Wallace (Shrewsbury Town) wins a free kick in the attacking half.
Post update
Foul by Lucas João (Sheffield Wednesday).