Solano came on as a substitute to score West Ham's winner
A late goal from Nolberto Solano gave West Ham a narrow win and put pressure on relegation-threatened Fulham.
The Hammers were frustrated in the first half as Carlton Cole saw a volley saved and another skim the bar, while Luis Boa Morte also went wide.
Fulham worked hard but West Ham's firm defence kept out Brian McBride's volley and Diomansky Kamara's effort.
Solano then bundled the ball in, to the fury of Fulham, who had Leon Andreasen sent off for his protests for handball.
As Fulham keeper Antti Niemi came to meet Solano, the ball seemed to go in off the Peruvian's elbow.
The home side's frustration was understandable as, despite a spirited display, they could not prevent yet another late home defeat and remain mired in the relegation zone.
England manager Fabio Capello was in the stands at Craven Cottage, and if he did not stay for the dramatic conclusion it would be hard to guess whether he saw anything to spark his interest.
In the first half, Cole saw three scoring opportunities go begging. First, the striker's dipping shot was saved by Niemi.
Then Boa Morte, under pressure from Brede Hangeland, put Cole clear through, but his right-footed shot was diverted to safety by Paul Konchesky.
Cole conjured another chance, meeting Julien Faubert's cross in the air and firing the ball towards the goal, only for it to clip over the bar.
Boa Morte wasted another decent chance for the visitors when his header from close range looped over the woodwork.
Jimmy Bullard and Clint Dempsey worked effortlessly to turn the tide and push Fulham forward.
Bullard was at the heart of Fulham's forward play
Bullard's ball out of defence found American Dempsey, whose shot was blocked by Anton Ferdinand.
Konchesky smacked the loose ball towards goal but Robert Green pounced on it to keep Fulham at bay.
Fulham went close again when skipper McBride, returning to the side after rupturing his knee cap in August, hit his volley straight at Green; and just before half-time, Dempsey also volleyed wide.
It looked as though Fulham might finally get a bit of luck when Kamara found himself in space in the box, only for his shot to be blocked by Ferdinand.
West Ham's defence has been impressive this season and even when it looked as though Ferdinand had handled the ball, Fulham's penalty appeals were waved away.
The Hammers cranked up the pressure and Mark Noble was unlucky to see his clever one-two with Faubert fizzle out as he put his shot wide.
Cole was also in the mix but his left-footed shot was battered away by Aaron Hughes and then, when he was unmarked again, he could do no better than head the ball into Niemi's arms.
Dempsey then missed Fulham's best chance of the match when through on goal but he could only loft the ball into Green's arms.
And an excellent save from Green denied Bullard and Fulham again, as the keeper got down well to collect his cross.
The match was settled soon afterwards when Solano, in typical fashion, broke clear of the defence and somehow poked the ball beyond Niemi.
Fulham boss Roy Hodgson:
"I'm sad when you play like that but you come away with nothing and concede a goal like that.
"Solano's studs were in (Fulham keeper) Antti Niemi's face and have cut his shoulder to, so it's very unlucky.
"It was a clear foul and the goal should have been disallowed. We had worked hard for the point and it was unfortunate that it was taken away."
West Ham boss Alan Curbishley:
"From my angle Nobby got a clean connection but then they are saying it might have been his elbow.
"It was difficult for the referee to see but if it has been our little bit of luck then we'll take it.
"It was always going to be a tight game and we had to keep going so I'm pleased with the result."
Fulham: Niemi, Stalteri, Hughes, Hangeland, Konchesky, Andreasen, Bullard, Murphy, Dempsey (Johnson 76), McBride, Kamara.
Subs Not Used: Keller, Bocanegra, Smertin, Nevland.
Sent Off: Andreasen (88).
Booked: Murphy, Hangeland, Andreasen.
West Ham: Green, Neill, Ferdinand, Upson, McCartney, Ljungberg (Spector 90), Mullins, Faubert (Solano 63), Noble, Boa Morte, Cole (Ashton 80).
Subs Not Used: Wright, Pantsil.
Goals: Solano 87.
Ref: Howard Webb (S Yorkshire).
BBC Sport Player Rater man of the match: West Ham's Carlton Cole 7.38 (on 90 minutes).
• Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.