Richarlison scored but could not prevent Tottenham going out of the Carabao Cup as Fulham won a penalty shootout to progress to round three.
After a Micky van de Ven first-half own goal gave Fulham a deserved lead, Spurs levelled in unusual circumstances.
The home side were temporarily reduced to 10 men when Kenny Tete had to change his boot and Spurs took full advantage when Richarlison headed in.
But Davinson Sanchez's penalty was saved as Fulham won the shootout.
It was Tete - with a new boot on - who scored the decisive spot-kick to send the home side through.
It was ultimately a deserved win for Fulham, who should perhaps have been out of sight before Richarlison levelled with his first goal of the season after the hosts dominated the first half against a sluggish Spurs side.
Fraser Forster made an excellent save just before the break to deny Rodrigo Muniz, who also had a couple of decent chances before then.
Tottenham improved after the break and Manor Solomon almost got a dream winner against his former side late on, but his curled effort from the edge of the box was saved.
Substitute James Maddison also hit a free-kick into the wall but penalties were needed to settle the tie, with Fulham successfully converting all of theirs to send Spurs out.
It was overall a very encouraging performance by Fulham, whose manager Marco Silva had to watch the game from the stands after picking up three yellow cards in the first three Premier League games of the season.
Richarlison relief as he gets off the mark
Tottenham have had a good start to the season in the Premier League with an opening-day draw followed by back-to-back wins against Manchester United and Bournemouth.
Consequently, this EFL Cup match offered Spurs boss Ange Postecoglou the chance to rotate his squad and give others the opportunity to impress.
Richarlison was one of just two players - along with Van de Ven - to retain his place in the side from the 2-0 win against Bournemouth, and this was a chance for the Brazilian to finally get off the mark for the season as he looks to fill the void left by Harry Kane's departure.
It looked like another opportunity would pass him by as he was largely anonymous in the first half, having one shot of note that was easily blocked by the Fulham defence.
But he showed his predatory instincts to nod home a fine cross from Ivan Perisic and, despite this defeat, Postecoglou will hope this will give him the confidence to kick on and start scoring in the Premier League.
Player of the match
Andreas PereiraAndreas Pereira
Fulham
Squad number18Player nameAndreas Pereira
Squad number26Player nameJoão Palhinha
Squad number7Player nameJiménez
Squad number35Player nameFrancois
Squad number8Player nameWilson
Squad number38Player nameHarris
Squad number10Player nameCairney
Squad number11Player nameTraoré
Squad number19Player nameRodrigo Muniz
Squad number14Player nameDe Cordova-Reid
Squad number2Player nameTete
Squad number1Player nameRodák
Squad number6Player nameReed
Squad number31Player nameDiop
Squad number33Player nameRobinson
Squad number13Player nameReam
Line-ups
Fulham
Formation 4-2-3-1
1Rodák
2Tete31Diop13Ream33Robinson
6Reed26João Palhinha
11Traoré10Cairney14De Cordova-Reid
19Muniz Carvalho
1Rodák2Tete31Diop13Ream33Robinson6ReedSubstituted forHarrisat 77'minutes26João Palhinha11TraoréSubstituted forWilsonat 61'minutes10CairneySubstituted forFrancoisat 83'minutes14De Cordova-ReidSubstituted forPereiraat 77'minutes19Muniz CarvalhoSubstituted forJiménezat 83'minutesSubstitutes
7Jiménez8Wilson17Leno18Pereira27Mbabu30Carlos Vinícius35Francois38Harris44De FougerollesTottenham
Formation 4-4-1-1
20Forster
12Emerson Royal6D Sánchez37van de Ven33Davies
27Solomon4Skipp5Højbjerg14Perisic
18Lo Celso
9Richarlison
20Forster12Emerson Royal6D Sánchez37van de VenBooked at 76mins33Davies27SolomonSubstituted forMaddisonat 82'minutes4SkippBooked at 63minsSubstituted forSarrat 72'minutes5Højbjerg14PerisicSubstituted forSon Heung-minat 71'minutes18Lo CelsoSubstituted forScarlettat 45'minutes9RicharlisonSubstituted forKulusevskiat 72'minutesSubstitutes
7Son Heung-min8Bissouma10Maddison13Vicario17Romero21Kulusevski29Sarr38Udogie44ScarlettLive Text
Match ends, Fulham 1(5), Tottenham Hotspur 1(3).
Penalty Shootout ends, Fulham 1(5), Tottenham Hotspur 1(3).
Goal! Fulham 1(5), Tottenham Hotspur 1(3). Kenny Tete (Fulham) converts the penalty with a right footed shot to the centre of the goal.
Goal! Fulham 1(4), Tottenham Hotspur 1(3). James Maddison (Tottenham Hotspur) converts the penalty with a right footed shot to the bottom right corner.
Goal! Fulham 1(4), Tottenham Hotspur 1(2). João Palhinha (Fulham) converts the penalty with a right footed shot to the centre of the goal.
Penalty saved! Davinson Sánchez (Tottenham Hotspur) fails to capitalise on this great opportunity, right footed shot saved in the bottom right corner.
Goal! Fulham 1(3), Tottenham Hotspur 1(2). Harry Wilson (Fulham) converts the penalty with a left footed shot to the top right corner.
Goal! Fulham 1(2), Tottenham Hotspur 1(2). Dejan Kulusevski (Tottenham Hotspur) converts the penalty with a left footed shot to the bottom left corner.
Goal! Fulham 1(2), Tottenham Hotspur 1(1). Raúl Jiménez (Fulham) converts the penalty with a right footed shot to the centre of the goal.
Goal! Fulham 1(1), Tottenham Hotspur 1(1). Son Heung-Min (Tottenham Hotspur) converts the penalty with a right footed shot to the bottom right corner.
Goal! Fulham 1(1), Tottenham Hotspur 1. Andreas Pereira (Fulham) converts the penalty with a right footed shot to the bottom right corner.
Penalty Shootout begins Fulham 1, Tottenham Hotspur 1.
Second Half ends, Fulham 1, Tottenham Hotspur 1.
Corner, Tottenham Hotspur. Conceded by Kenny Tete.
Micky van de Ven (Tottenham Hotspur) wins a free kick in the defensive half.
Foul by Raúl Jiménez (Fulham).
Attempt blocked. James Maddison (Tottenham Hotspur) right footed shot from outside the box is blocked.
James Maddison (Tottenham Hotspur) wins a free kick in the attacking half.
Foul by João Palhinha (Fulham).
Attempt missed. Raúl Jiménez (Fulham) header from the right side of the six yard box is too high. Assisted by Kenny Tete with a cross.