Patrick Roberts did the damage for Fulham with a clinical hat-trick as we led 1-0, trailed 2-1, fought back to 2-2 and looked most likely to come out on top before an 83rd-minute winner for the visitors.
We made the perfect start inside three minutes when Nathan Oduwa sped away down the left, crossed and Josh Onomah was there to slot home at the far post, a precise finish.
Luke McGee blocked Dean Ohalloran at the near post in the ninth minute but that was a rare forray forward for the visitors as we dicated the early stages.
Onomah's 25-yarder stung Marek Rodak's hands and with Oduwa a constant threat, a second goal looked likely.
However, Fulham fought back and levelled on 23 minutes with a goal of our making. Cameron Carter-Vickers looked to play square across the penalty area to Filip Lesniak, Patrick Roberts read it, won possession and rifled into the top corner.
We responded immediately. Shayon Harrison's sharp strike from the left angle was turned away by Rodak and the same player just failed to turn Emmanuel Sonupe's cross on target. Connor Ogilvie then curled a free-kick just wide from 30 yards.
Lifted by their unlikely equaliser, Fulham pushed on and took the lead on 34 minutes. Joshua Smile let fly from 30 yards, McGee got down to palm away but Roberts was onto the loose ball in a flash and made no mistake from 10 yards.
The final chance of the half fell to Onomah, who took off on a Ricky Villa-style dribble into the box and looked to place into the corner, his shot deflected just wide with Rodak beaten.
We were on the front foot again at the start of the second half. Oduwa had a chance to break from the right but overran the ball and Onomah danced his way into the box from the left before squaring to Will Miller, whose goal-bound effort struck Solomon Sambou.
The equaliser arrived on 53 minutes. Oduwa worked a yard on the right angle and shot low, his effort squeezing past Rodak and over the line.
Emerson Hundman angled a shot over on the hour but we were on top now and chances flowed.
Ogilvie's dipping free-kick was punched clear by Rodak before shots from Harrison and Onomah were blocked, Rodak did well to tip over when Ogilvie took aim again from the right corner of the box, Miller curled inches wide and Oduwa, sent clear by Harrison, rifled low across Rodak but just wide.
We were made to pay seven minutes from time when Jordan Evans took aim from 25 yards, McGee parried and Roberts was there again to claim his hat-trick in clinical fashion.
Unfortunately, both Onomah and Smile received red cards after a bust up on 85 minutes.
Winks, twice, and Joe Pritchard tested Rodak again in injury time but it wasn't to be.
Spurs: McGee; Walker-Peters, Carter-Vickers, Lesniak, Ogilvie; Onomah, Miller (Pritchard, 87), Winks; Sonupe (Georgiou, 63), Harrison (Akindayini, 78), Oduwa. Unused subs: Priestley, Vincent-Young.
Fulham: Rodak; Donelly, Adebayo (Sheckleford, 30), Burgess, Evans; Smile, Hundman, Sambou, Williams; Ohalloran, Roberts (Walker, 90+3). Unused subs: Norman, McLeod, Baba.