West Brom needed penalties to beat League One Peterborough to reach the FA Cup fifth round.
Ben Foster saved from Martin Samuelsen and Lee Angol in the shoot-out as the Baggies won 4-3 following a 1-1 draw after extra time.
It sent them into a tie at Reading – but Tony Pulis’ side were fortunate to progress at London Road.
Jon Taylor had given the hosts the lead only for Darren Fletcher to level – but the Sky Bet League One side dominated for long spells.
Taylor and the impressive Samuelsen, despite his penalty miss, often ran the Barclays Premier League side ragged but they won despite being second best.
The tone was set when James McClean was forced to block Harry Beautyman’s early close-range effort as the hosts looked to stun Albion.
Their inventive and bright play pinned the Baggies back, although Graham Westley’s team were unable to make a breakthrough.
Posh’s cause was helped, though, when Albion’s Gareth McAuley, who was a doubt with a thigh injury before the match, limped off after just 19 minutes to be replaced by Sebastien Pocognoli.
It was a fresh worry for the Baggies as they struggled to make an impact against a brash Peterborough side.
Foster saved from Chris Forrester and Samuelsen while Saido Berahino was anonymous for the visitors in the first half.
Albion had won just three games in their last 15 outings prior to this tie and their declining form showed no signs of ending during a poor opening period.
Berahino finally registered a shot nine minutes before the break, his effort flashing wide – but it was the closest the Baggies got to threatening Ben Alnwick’s goal.
McClean had a shot blocked minutes later before, from the resulting corner, James Chester miscued at the far post and his shot hit Fletcher.
The hosts had 57 per cent of the possession in the first half and little changed following the restart.
Posh continued to press and Shaquile Coulthirst curled just wide but the hosts did not have to wait long before deservedly opening the scoring on 55 minutes.
Albion had been sloppy all night and McClean’s wretched pass was intercepted by Angol, who found Taylor on the left.
The winger then outfoxed the backpedalling Chester and his 15-yard effort clipped the defender to creep low past Foster.
Taylor’s dramatic late equaliser in the 2-2 draw at The Hawthorns took the tie to a replay and he – along with the outstanding Samuelsen – epitomised Posh’s confident attitude.
Albion looked a spent force and while Craig Gardner’s token volley drifted wide Berahino and Salomon Rondon were nowhere to be seen.
However, the Baggies levelled against the run of play on 71 minutes when Fletcher crashed in a half-volley from 18 yards after Peterborough only half-cleared McClean’s cross.
It was the skipper’s first FA Cup goal in eight years but failed to spark an Albion revival and the hosts continued to press, with Coulthirst shooting wide 10 minutes later.
Berahino could have won the game but Michael Bostwick blocked his drive after Alnwick was beaten to the ball by Rondon and the goalkeeper then saved from Rondon at the end to send the tie to extra time.
Substitute Souleymane Coulibaly shot wide and West Ham loanee Samuelsen drove over as he continued to torment the Albion defence.
Marcus Maddison lobbed over with seven minutes remaining but Gabriel Zakuani saved Posh when he headed Gardner’s fierce volley off the line 90 seconds later.
And Berahino missed a glorious chance with almost the last kick of extra time when, unmarked, he headed Gardner’s free-kick wide from three yards.
But Foster was Albion’s hero when he saved from Samuelsen and Angol in the shoot-out to send the visitors through, despite Fletcher missing from the spot.