The Bulgarian scored early in the second half to earn Fulham only their third away win of the season and condemn Spurs to a third defeat in eight days which dents their top four hopes.
The closest Spurs came to an equaliser was when substitute Jermain Defoe's close-range effort was brilliantly saved by Mark Schwarzer in the closing seconds.
Tottenham went close to scoring after just five minutes when Gareth Bale's header from a corner was cleared off the line by Fulham full-back Sascha Riether.
After that chances were few and far between with defences very much on top and both sides struggling to make any inroads in the final third.
Bale had a couple of efforts from long-range fly well wide of the target, while Gylfi Sigurdsson also curled a shot from the edge of the box wide of Schwarzer's goal.
Fulham's only half chance of the half came late on when Hugo Lloris spilled a cross from Berbatov, but reacted quickly to gather the ball at the second attempt ahead of Bryan Ruiz.
Spurs suffered a scare just before the break when Bale appeared to go over on his ankle and after lengthy treatment he was able to continue, but he was still hobbling as the referee brought a disappointing first half to a close.
Fulham hit the front on 52 minutes when they caught Tottenham on the break with Riether getting down the right and crossing for Berbatov to slot home from close range.
The visitors really should have doubled their lead before the hour mark when Brede Hangeland headed wide from close range at the far post.
Spurs brought on Defoe and he went close to scoring on 70 minutes when he was picked out by Steven Caulker inside the box and his shot was well saved by Schwarzer.
The home side were running out of ideas, but they almost grabbed a point in the final minute when Bale got down the right and crossed for Defoe inside the six-yard box only for Schwarzer to produce a superb save to keep out the striker's effort.