Middlesbrough secured an FA Cup fifth round tie against West Brom at the Riverside Stadium after a penalty shootout replay win over League One Bristol City.
Boro deserved their success but every credit goes to a City side hit by injuries and suspension.
Manager Gary Johnson had every reason to be proud of a side that fought every inch of the way for 120 minutes but suffered the agony of losing out on penalties.
Bristol shook their Premier League opponents by taking a first-half lead but Middlesbrough forced extra-time with an equaliser from substitute Mark Viduka.
Yakubu Ayegbeni looked to have won the match for Boro in extra-time, but never-say-die City forced a shootout with a late Jamie McCombe equaliser.
Middlesbrough will now welcome West Brom and a local-born hero in Tony Mowbray who is manager of Albion.
Mowbray is ranked as one of the most popular Middlesbrough players in post-war years and he is assured of a terrific reception on his return to his home club.
Middlesbrough were favourites to progress against City, but the West Country side put up a tremendous fight.
The Robins, in fact, shook the home side by taking the lead through David Noble.
Alex Russell put Noble clear with a perfect pass and he took full advantage. Noble, who found himself in a wide open space, moved forward to beat Mark Schwarzer even though the goalkeeper got a hand to the ball.
Middlesbrough struggled for a breakthrough in the first half and it was no surprise when manager Gareth Southgate brought on Viduka for the second half.
Southgate obviously hoped the Australian's class and experience would pull his side around against the underdogs.
Middlesbrough piled on the pressure and it was no surprise when Viduka levelled the scores with a far-post header from a Stewart Downing cross.
Boro stepped up the tempo and City were fortunate to survive when both Downing and substitute Adam Johnson struck the woodwork.
However, the visitors refused to panic and played some neat football under pressure.
Middlesbrough were awarded a penalty in the first period of extra-time, but Yakubu spoilt his spot-kick reputation with a shot that lacked both power and accuracy.
The Nigeria international shot straight at goalkeeper Chris Weale.
Yakubu redeemed himself shortly after when he was on the spot to tap the ball over the line from close range after Weale had parried a Johnson shot.
City rallied and in the final minutes McCombe, who had fouled Yakubu for the penalty, had the satisfaction of forcing an equaliser.
In a tense penalty shoot-out Schwarzer was the Boro hero with two crucial saves before Johnson crashed in the winning goal for a relieved home side.