Stoke City grabbed a place in the fourth round of the FA Cup after overcoming a spirited Doncaster Rovers side 2-1 at the Keepmoat Stadium on Saturday afternoon.
Peter Crouch, who has struggled for game time this season, opened the scoring for the Potters, but Nathan Tyson was able to respond with an equaliser 10 minutes later.
Despite the home side controlling the game after the break, they were dealt a sucker-punch when Jonathan Walters hammered home a long-range effort in the 57th minute.
The League One side began the game on the front foot as Tyson wriggled away from his marker to swing a cross into the box from the left.
Stoke's clearance fell to Cedric Evina, who went for glory with a thumping drive, but goalkeeper Jakob Haugaard was well positioned to snatch the ball with his hands.
Joselu caused the first attacking threat for the visitors as he connected with the ball with a header in the middle of the box, but he just missed the target and the ball bobbled wide of the right post.
The home side worked well off the ball and did not allow their opponents a moment's peace when in possession, but Rovers were dealt a blow in the 15th minute when Crouch edged in from close range after latching on to Joselu's cross.
Ten minutes later, Doncaster's hard work paid off when Luke McCullogh stormed through the middle of the field and into the penalty area before squaring the ball to Tyson.
The forward showed great desire as his first shot in the 18-yard box was stopped by the keeper, but he stayed in the hunt to scramble the ball into the net for an all-important equaliser.
Stoke were clearly rattled by the goal as Philipp Wollscheid struggled for composure after fouling two Doncaster players within seconds of one another, and the defender was issued a yellow card.
The home side looked the more comfortable team on the ball in the few minutes after the equaliser, but out of nowhere, Stoke came close to taking the lead again when Walters, who managed to hold the ball up in the box, squared to Mame Biram Diouf, who tried to swing the ball goal-bound, but goalkeeper Thorsten Stuckmann dropped to his left to make the save.
The game became more open as the first half went on, but the Potters could have gone into the break with a 2-1 lead when Diouf received the ball from Joselu in the box, but despite having plenty of space, he took too many touches and by the time he went to shoot, the ball had run away from him.
After the break, Doncaster came out playing with confidence and they almost took the lead when Conor Grant, who is on loan from Everton, unleashed a low drive towards the left corner of the box, but it trickled inches wide.
The home side continued to threaten and Craig Alcock felt that he deserved a penalty when he seemed to be clipped from behind in the box, but the referee waved away his claims.
At the other end, Diouf and Crouch were left with their heads in their hands when they both missed chances to edge Stoke ahead again.
Diouf's attempt was saved by the keeper, but the ball was not cleared very far as it fell to Crouch's feet, but the striker's close-range shot skied high over the crossbar.
Fortunately for the visitors, they were given a slice of luck when Stuckmann's clearance bounced off his own defender and into the path of Crouch.
The Englishman's shot was blocked, but the ball fell to Walters, who made no mistake and thumped it into the top left corner from outside of the box.
Doncaster were resilient in their approach as they searched for another equaliser, and they were given some hope when Walters squandered a chance to finish the game off as the striker's attempt at the near post flew over the bar after trying to connect with Charlie Adam's whipped-in cross.
Andy Butler had a number of chances to strike for Doncaster, one of which came inside the final 10 minutes of the match when he attempted a looping header, but it clattered off the crossbar.
That was to sum up the afternoon for Doncaster, who missed two close-range chances in the dying minutes of the match, as they were forced to accept defeat.