Match ends, Wolverhampton Wanderers 3, Shrewsbury Town 2.
Wolves had to come from behind to book their place in the FA Cup fifth-round with victory over Shrewsbury.
Matt Doherty handed the home team an early lead before the League One side equalised with a James Bolton header.
The Shrews then took a surprise lead through Josh Laurent as goalkeeper John Ruddy let the ball slip through his hands for the Premier League club.
But Doherty restored parity in first-half injury time before Ivan Cavaleiro sealed their progress after the break.
The Portuguese forward rolled the ball past Steve Arnold in clinical fashion despite appearing to stumble in the build-up to the goal.
Wolves will now travel to Championship club Bristol City on 17 February for a place in the quarter-final.
Wolves' front three struggle as Doherty shines
Nuno Espirito Santo made six changes to his side that beat Everton in the Premier League on Saturday, and regulars Raul Jimenez and Joao Moutinho were among those who dropped to the bench.
The hosts raced into a second-minute lead from the first set-piece of the game as Doherty hacked in the loose ball from close range.
Wolves dominated the ball with 72% possession in the first half but they showed a vulnerability from set-pieces as Shrewsbury drew level when Bolton headed into an empty net.
Sam Ricketts' side then took the lead with only their second attempt at goal as Laurent produced a hopeful shot from the edge of the box which Ruddy failed to hold onto as the ball trickled over the line.
The hosts lacked a cutting edge in attack and the front three of Helder Costa, Adama Traore and Cavaleiro struggled to find any rhythm.
Doherty - who has now scored more goals in all competitions than any other Premier League defender this season (5) - handed Wolves' forwards a lifeline just before the interval with a header at the back post, as Shrews goalkeeper Steve Arnold failed to claim Jonny's cross.
The 28,844 supporters inside Molineux saw Cavaleiro find the winner in the second half, and the four-time winners will now travel to the South West buoyed by their travelling fans who appear to have an appetite for a cup run alongside their encouraging top-flight league campaign.
'We managed to solve it' - what they said
Wolves manager Nuno Espirito Santo said: "I'm not happy with the performance but happy because we got to the fifth round.
"It was not one of the best games we've had, but we managed to solve it and it's job done, let's go to the next one.
"After we scored so early, I thought that we could have played better, then we allowed them to get back in the game. It made our task very hard.
"We were ahead in the first moment, and the first shot at goal we scored, but we kept the ball with no real threat. When they scored we started playing, but it was always rushed and not the best way to play football."
On facing Bristol City in the fifth round: "It's going to be very, very competitive. It's going to be very, very tough, but, now we have Newcastle first, then we're going to focus on the FA Cup."
Shrewsbury manager Sam Ricketts said: "I'm really proud of the players and they should be proud of themselves, we have pushed a Premier League side to the very end over two games, and even late on, we are had chances to force the game.
"We are disappointed not to win the game but you cannot ask more from the players. Having conceded away at Molineux in front of a packed house in the second minute, many teams would have crumbled.
"Steve Arnold has made a mistake that we all make, it was a slippy night and John Ruddy made one for their goal."
On Cavaleiro's winner: "I still think it's a foul. You cannot have two arms around our players waist. If we're going to have video technology, let's get it right.
"Romain's [Vincelot] injury is a sad point and we'll have to wait and see what that is."
Shrews break 53-year record - match stats
- Wolves have won consecutive home games in the FA Cup for the first time since January 2006.
- Wolves' Matt Doherty has scored more goals in all competitions this season (5) than any other Premier League defender. He is Wolves' second highest scorer this season, trailing only Raul Jimenez (11).
- Shrewsbury scored two or more goals away from home against top-flight opposition for the first time since March 1966 against Chelsea in the fifth round of the FA Cup.
- 19Castro Otto
- 37TraoréSubstituted forJiménezat 77'minutes
- 7CavaleiroSubstituted forEnnisat 89'minutes
- 10Hélder CostaSubstituted forJoão Moutinhoat 69'minutes
- 28João Moutinho
- 16VincelotSubstituted forSearsat 38'minutes
- 29NorburnBooked at 35mins
- 18GillieadSubstituted forWhalleyat 66'minutes
- 12OkenabirhieSubstituted forAmadi-Hollowayat 78'minutes
- Lee Probert
- Shots on Target
Second Half ends, Wolverhampton Wanderers 3, Shrewsbury Town 2.
Attempt missed. Aaron Amadi-Holloway (Shrewsbury Town) header from very close range is just a bit too high. Assisted by Ryan Haynes with a cross following a corner.
Corner, Shrewsbury Town. Conceded by Romain Saïss.
Hand ball by Matt Doherty (Wolverhampton Wanderers).
Corner, Wolverhampton Wanderers. Conceded by Omar Beckles.
Substitution, Wolverhampton Wanderers. Niall Ennis replaces Ivan Cavaleiro.
Attempt missed. Greg Docherty (Shrewsbury Town) right footed shot from the right side of the box is high and wide to the right.
Foul by Romain Saïss (Wolverhampton Wanderers).
Shaun Whalley (Shrewsbury Town) wins a free kick in the defensive half.
Attempt missed. Romain Saïss (Wolverhampton Wanderers) right footed shot from outside the box misses to the left following a corner.
Corner, Wolverhampton Wanderers. Conceded by Oliver Norburn.
Attempt blocked. Morgan Gibbs-White (Wolverhampton Wanderers) right footed shot from outside the box is blocked. Assisted by Ivan Cavaleiro.
Attempt blocked. Shaun Whalley (Shrewsbury Town) right footed shot from the centre of the box is blocked.
Attempt missed. Omar Beckles (Shrewsbury Town) left footed shot from outside the box is close, but misses to the right. Assisted by Josh Laurent.
Attempt saved. Raúl Jiménez (Wolverhampton Wanderers) right footed shot from the centre of the box is saved in the bottom left corner. Assisted by Matt Doherty.
Substitution, Shrewsbury Town. Aaron Amadi-Holloway replaces Fejiri Okenabirhie.
Attempt missed. Shaun Whalley (Shrewsbury Town) right footed shot from outside the box misses to the left. Assisted by Greg Docherty.
Substitution, Wolverhampton Wanderers. Raúl Jiménez replaces Adama Traoré.
Adama Traoré (Wolverhampton Wanderers) wins a free kick in the defensive half.