The visitors scored twice in eight first-half minutes, their first arriving when Ademola Lookman slotted past Kasper Schmeichel following Andre-Frank Zambo Anguissa’s driving run from inside his own half.
Ivan Cavaleiro then made amends for his missed penalty against Everton eight days ago with a confident spot-kick, awarded after referee Simon Hooper reviewed Christian Fuchs’ tackle on Bobby Decordova-Reid on the pitch-side monitor.
Leicester had earlier struck the woodwork twice in quick succession as Wesley Fofana’s follow-up to Youri Tielemans’ volley cannoned off the crossbar.
But the Foxes, as they did in their 3-0 defeat by Liverpool, endured another frustrating night in attack until substitute Harvey Barnes’ late reply ensured a nervy finale for Scott Parker’s men.
Fulham’s second win of the season takes them up to two places to 17th, while Leicester remains fourth and three points behind leaders Tottenham.
RB Leipzig loanee Lookman celebrated his goal by holding up a Senegal shirt which had been hung in the visitors’ dressing room, in tribute to former midfielder Papa Bouba Diop who died aged 42 on Sunday.