Southampton remain rooted to the foot of the table after a late winner by Fulham’s Joao Palhinha condemned the visitors to a fifth straight Premier League defeat.
James Ward-Prowse’s superb second-half free-kick, which canceled out his earlier own-goal, seemed set to secure his side a much-needed point.
But a clever flick-on from Kenny Tete set up Palhinha’s 88th-minute header.
Aleksandar Mitrovic missed an injury-time penalty and the chance to add gloss to the scoreline.
Fulham are up to seventh on the back of their fourth win in seven games.
Craven Cottage legend Cohen honoured
The hosts paid tribute to one of their own before kick-off.
Manager Marco Silva, one of his mostly fondly-remembered predecessors Roy Hodgson and George Cohen’s son Anthony laid wreathes around the center circle in memory of the 1966 World Cup winner, who died at the age of 83 on 23 December.
Cohen was born in Fulham and swept the Craven Cottage stands as part of the ground staff before embarking on a 459-game one-club career with the Whites. A minute’s applause ended with the home fans chanting the former full-back’s name of him.
Once under way, Southampton had the clearest early chance when Che Adams darted behind the hosts’ high line, but goalkeeper Bernd Leno did well to repel his effort.
Mohamed Elyounoussi skimmed a shot narrowly over the crossbar, but Fulham gradually asserted themselves in midfield, with Palhinha to the fore, and were rewarded on 32 minutes.
Willian clipped a corner to the edge of the penalty area, which Andreas Pereira met with his instep. The volley was well-struck but seemed to be heading off target until Ward-Prowse’s instinctive attempt to block instead ensured it ended up in the back of the net.
Pereira stabbed a shot wide after the break as Fulham started the second half brightly.
But Ward-Prowse, who is second only to David Beckham in Premier League free-kick goals, gives Saints a threat that few other sides can offer at set-pieces.
The 28-year-old captain whipped a superb swirling free-kick around the wall and beyond Leno’s dive to cancel out his own-goal and level the contest.
It seemed the scores would remain equal before the contest sprung back into life in the final few minutes.
Tom Cairney and Willian almost combined to set up Pereira at one end before Southampton substitute Romain Perraud threatened at the other.
The hosts went ahead again when another well-worked set-piece isolated Palhinha, who stands 6ft 3in tall, against a clutch of smaller defenders.
Mitrovic, who has 10 goals in his previous 13 Premier League games, had a chance to add to his prolific season after a foul on Dan James. But his penalty di lui, well saved by Gavin Bazunu, ended an uncharacteristically quiet afternoon for the Serbian striker.
- 6reedsSubstituted forCairneyat 62′minutes
- 26João Palhinha
- 14De Cordova-ReidSubstituted forJamesat 62′minutes
- 18PereiraSubstituted forTosinat 90+8′minutes
- 30Alves Morais
- 22SalisuSubstituted forStreetat 90′minutes
- 3Maitland-NilesSubstituted forTo Armstrongat 90′minutes
- 24ElyounoussiBooked at 70minsSubstituted forMaraat 90′minutes
- 7aribusSubstituted forS Armstrongat 67′minutes
- 23EdozieSubstituted forPerraudat 77′minutes
- 9To Armstrong
- 17S Armstrong
- 27Say it
- Graham Scott
Match ends, Fulham 2, Southampton 1.
Second Half ends, Fulham 2, Southampton 1.
Substitution, Fulham. Tosin Adarabioyo replaces Andreas Pereira.
Corner, Fulham. Granted by Gavin Bazunu.
Penalty saved! Aleksandar Mitrovic (Fulham) fails to capitalize on this great opportunity, right footed shot saved in the bottom right corner.
Penalty Fulham. Dan James draws a foul in the penalty area.
Penalty conceded by Gavin Bazunu (Southampton) after a foul in the penalty area.
Substitution, Southampton. Romeo Lavia replaces Mohammed Salisu.
Substitution, Southampton. Adam Armstrong replaces Ainsley Maitland-Niles.
Substitution, Southampton. Sékou Mara replaces Mohamed Elyounoussi.
Goal! Fulham 2, Southampton 1. João Palhinha (Fulham) header from the right side of the six yard box to the bottom right corner. Assisted by Kenny Tete with a headed pass following a corner.
Corner, Fulham. Granted by James Ward-Prowse.
Corner, Fulham. Granted by Mohamed Elyounoussi.
Dan James (Fulham) wins a free kick on the right wing.
Foul by Mohammed Salisu (Southampton).
João Palhinha (Fulham) wins a free kick in the defensive half.
Foul by Stuart Armstrong (Southampton).
Substitution, Southampton. Romain Perraud replaces Samuel Edozie because of an injury.
Kenny Tete (Fulham) wins a free kick on the right wing.
Foul by Stuart Armstrong (Southampton).