Leicester City's Premier League survival hopes suffered a blow as they were beaten 5-3 by Fulham at Craven Cottage.
The hosts opened the scoring through a Willian free-kick before strikes from Carlos Vinicius and Tom Cairney powered them into a 3-0 half-time lead.
Cairney added another after the restart before Harvey Barnes pulled a goal back for the visitors, who then saw Jamie Vardy miss a penalty in the 66th minute.
Willian re-established Fulham's four-goal lead with another fine strike before James Maddison netted Leicester's second with an 81st-minute spot-kick.
Barnes scored a late third but the struggling Foxes slumped to an underwhelming defeat.
Leicester remain just above the drop zone on goal difference with relegation rivals Nottingham Forest and Everton both playing later on Monday.
Fulham ended a three-match winless run and remain 10th, two points behind west London rivals Brentford.
Woeful Leicester booed off at half-time
Leicester are desperate for points and, with matches against Liverpool and Newcastle still to come, Foxes fans would have circled Fulham away as a must-win fixture in their battle to avoid the drop.
But against a side who had lost three of their past four matches at home, Leicester were woeful in the first half.
The Foxes fell behind in the 10th minute when keeper Daniel Iversen misjudged Willian's wide free-kick and the ball bounced underneath him before nestling in the bottom corner.
Vinicius' goal finished off a fine counter-attacking move before Cairney scored on just his third league start of the season with an impressive curling finish.
Trailing by three goals at the break, Leicester were booed off by the visiting fans and the mood only got bleaker when Cairney added Fulham's fourth in the 51st minute.
However, Barnes gave his side a glimmer of hope, before Vardy was caught by Bernd Leno midway through the second half - but when the striker missed the resulting spot-kick, any unlikely thoughts of a comeback ended.
Fulham soon added a fifth against a porous defence - and Leicester have now failed to keep a clean sheet in any of their past 20 games, an unwanted Premier League record.
There were ironic jeers when Maddison found the bottom corner from the spot in the 81st minute after he had been caught by Joao Palhinha in the box.
Barnes' 89th-minute strike made the scoreline look more respectable, but in truth the Foxes never looked like securing anything from the match.
Leicester could have gone three points clear of the drop zone with a win, but instead they remain 16th - level on points with Leeds and Nottingham Forest who are 17th and 18th.
Superb Fulham equal club record
Inspired by their impressive first-half showing, Fulham have equalled a club record of 14 wins in a single Premier League season.
There was a party atmosphere at a sun-kissed Craven Cottage as Marco Silva's side bounced back from narrow defeats to Aston Villa, Manchester City and Liverpool.
The Cottagers completed a top-flight double over Leicester for the first time since 2004, thanks mainly to the excellent attacking work of Willian and Cairney.
Fulham need five points from their final three games to equal their record top-flight points tally of 53, from the 2008-09 campaign.
They face Southampton away in their next match on Saturday before taking on Crystal Palace and Manchester United, while Leicester host Liverpool next Monday.
Player of the match
WillianWillian
Fulham
Squad number20Player nameWillian
Squad number10Player nameCairney
Squad number8Player nameWilson
Squad number30Player nameCarlos Vinícius
Squad number26Player nameJoão Palhinha
Squad number6Player nameReed
Squad number33Player nameRobinson
Squad number17Player nameLeno
Squad number2Player nameTete
Squad number11Player nameSolomon
Squad number7Player nameKebano
Squad number14Player nameDe Cordova-Reid
Squad number28Player nameLukic
Squad number31Player nameDiop
Squad number5Player nameDuffy
Squad number4Player nameTosin
Leicester City
Squad number7Player nameBarnes
Squad number10Player nameMaddison
Squad number9Player nameVardy
Squad number4Player nameSöyüncü
Squad number31Player nameIversen
Squad number27Player nameCastagne
Squad number26Player namePraet
Squad number20Player nameDaka
Squad number8Player nameTielemans
Squad number3Player nameFaes
Squad number22Player nameDewsbury-Hall
Squad number16Player nameKristiansen
Squad number37Player nameTetê
Squad number33Player nameThomas
Squad number42Player nameSoumaré
Squad number25Player nameNdidi
Line-ups
Fulham
Formation 4-2-3-1
17Leno
2Tete4Tosin31Diop33Robinson
26João Palhinha6Reed
8Wilson10Cairney20Willian
30Alves Morais
17Leno2Tete4Tosin31DiopSubstituted forDuffyat 77'minutes33Robinson26João Palhinha6ReedSubstituted forLukicat 77'minutes8WilsonSubstituted forKebanoat 82'minutes10CairneySubstituted forDe Cordova-Reidat 82'minutes20WillianSubstituted forSolomonat 82'minutes30Alves MoraisSubstitutes
1Rodák5Duffy7Kebano11Solomon12Cédric Soares14De Cordova-Reid28Lukic38Harris49Dibley-DiasLeicester
Formation 4-2-3-1
31Iversen
27Castagne3Faes4Söyüncü16Kristiansen
8Tielemans42Soumaré
26Praet10Maddison7Barnes
9Vardy
31Iversen27Castagne3Faes4Söyüncü16KristiansenSubstituted forThomasat 76'minutes8TielemansSubstituted forNdidiat 60'minutes42SoumaréBooked at 70minsSubstituted forDewsbury-Hallat 76'minutes26PraetSubstituted forTetêat 45'minutes10MaddisonBooked at 58mins7BarnesBooked at 24mins9VardySubstituted forDakaat 76'minutesSubstitutes
1Ward6Evans15Souttar20Daka21Ricardo Pereira22Dewsbury-Hall25Ndidi33Thomas37TetêReferee:Robert JonesAttendance:24,442Live Text
Match ends, Fulham 5, Leicester City 3.
Second Half ends, Fulham 5, Leicester City 3.
Foul by Kenny Tete (Fulham).
Harvey Barnes (Leicester City) wins a free kick in the attacking half.
João Palhinha (Fulham) wins a free kick in the defensive half.
Foul by Kiernan Dewsbury-Hall (Leicester City).
Hand ball by Carlos Vinícius (Fulham).
Goal! Fulham 5, Leicester City 3. Harvey Barnes (Leicester City) right footed shot from the centre of the box to the bottom left corner. Assisted by Patson Daka.
Attempt missed. Shane Duffy (Fulham) header from the left side of the six yard box misses to the left. Assisted by Tosin Adarabioyo following a set piece situation.
Attempt missed. Tosin Adarabioyo (Fulham) header from the centre of the box misses to the left. Assisted by Neeskens Kebano with a cross following a set piece situation.
Kenny Tete (Fulham) wins a free kick on the right wing.
Foul by Kiernan Dewsbury-Hall (Leicester City).
Attempt blocked. Sasa Lukic (Fulham) right footed shot from outside the box is blocked. Assisted by Neeskens Kebano.
Carlos Vinícius (Fulham) wins a free kick in the attacking half.
Foul by Çaglar Söyüncü (Leicester City).
Substitution, Fulham. Neeskens Kebano replaces Harry Wilson.
Substitution, Fulham. Bobby De Cordova-Reid replaces Tom Cairney.
Substitution, Fulham. Manor Solomon replaces Willian.
Goal! Fulham 5, Leicester City 2. James Maddison (Leicester City) converts the penalty with a right footed shot to the bottom right corner.
Penalty conceded by João Palhinha (Fulham) after a foul in the penalty area.
Our coverage of your Premier League club is bigger and better than ever before - here's everything you need to know to make sure you never miss a moment