Substitute Harry Wilson struck in extra-time to give Fulham a 1-0 FA Cup third-round win at fellow Championship club Bristol City.
The midfielder’s inswinging cross from the right in the 105th minute was missed by attackers and defenders alike and crept inside goalkeeper Max O’Leary’s far post.
It was rough justice on City, who had been the better side for much of the game, but failed to capitalise on some excellent chances.
Both managers made numerous team changes and a crowd of only 7,304 ensured a low key atmosphere.
Nahki Wells made a sharp start for City and was inches over with a 30-yard free-kick after 13 minutes.
Bobby Decordova-Reid then headed over for Fulham from a Joe Bryan cross.
Chris Martin had a free-kick saved by Fulham goalkeeper Paulo Gazzaniga from just outside the box before Decordova-Reid shot into the side-netting following a poor Callum O’Dowda clearance.
A Rodrigo Muniz downward header lacked the power to trouble O’Leary. Nathaniel Chalobah went closer with a 25-yard shot that fizzed wide after 38 minutes.
The best first-half chance fell to Martin seconds later, but after racing clear onto an Ayman Benarous through ball his shot was saved by Gazzaniga.
The second half started quietly until Muniz fired over with an acrobatic volley in the 55th minute and had another shot blocked by Rob Atkinson.
That woke up City and Cameron Pring’s run ended with a shot straight at Gazzaniga.
The hosts began to take the upper hand and Fulham boss Marco Silva reacted with a triple substitution after 71 minutes.
He sent on Aleksandar Mitrovic, Harrison Reed and Neeskens Kebano for Muniz, Tyrese Francois and Domingos Quina.
Wells had been a handful throughout and his glancing header from Alex Scott’s 76th-minute corner was held on his line by Gazzaniga.
A much better chance fell to O’Dowda from a Martin cross, but the winger blazed over from 12 yards with the goal at his mercy.
It was all City as Han-Noah Massengo’s shot was blocked by Tosin Adarabioyo at the expense of a corner.
But in stoppage time Reed volleyed wide for Fulham from the edge of the box.
Wilson replaced Chalobah for extra-time, while City sent on Tommy Conway, who quickly ran onto a through ball from another replacement, Antoine Semenyo, only to be driven too wide by Gazzaniga to finish.
There were tiring legs on both sides as a Kebano shot flashed wide for Fulham, Conway brought a low save from Gazzaniga and Mitrovic had an effort well blocked by Pring.
Then came Wilson’s goal to settle the tie.
The second half of extra-time began with O’Leary making a brilliant save to keep out Tom Cairney’s shot.
O’Leary kept his side in it with another superb stop from Kebano’s shot, but City had run out of steam.