West Ham's Marlon Harewood kept up his rich vein of form as he sent Fulham spinning to defeat at Craven Cottage.
Brian McBride and Claus Jensen went close for Fulham before West Ham's Nigel Reo-Coker headed a rebound wide after Harewood's shot hit the bar.
Harewood pounced a minute after the break, turning Zat Knight to lob in the first, then seeing his shot against the post go in off Tony Warner for 2-0.
Luis Boa Morte's curling effort gave Fulham hope but the Hammers held on.
The opening stages were evenly fought, with West Ham keeper Roy Carroll twice denying Fulham with excellent saves.
First he blocked Claus Jensen's shot with his legs, then the Northern Irish keeper made a superb save from McBride's point-blank header.
In an increasingly frantic game, Harewood had a close-range stab home ruled out for offside before McBride's long-range effort drew another fine save from Carroll.
Reo-Coker should have done better with his header after Harewood's shot rebounded off the bar but Harewood hit the target just after half-time.
A minute after the restart, Zamora's flicked header found Harewood, who turned Knight and chipped the ball over the advancing Warner for the opener.
Six minutes later, Harewood turned again and shot against the post, with the ball hitting the sprawling Warner to go into the net.
Fulham captain Boa Morte curled in a fine effort from the edge of the box to lift his fans' spirits as the home side launched an all-out assault to try and claim a point.
Moritz Volz went close for Fulham in the dying seconds of a hugely entertaining game but West Ham held on to become only the second visiting team to win at Fulham in 14 matches.
Fulham boss Chris Coleman:
"They started better than us in the second half. The first goal was poor on our behalf and the second one was lucky in that it came off the post.
"It would have been easy for us to give up and lie down, but we didn't.
"In the final third our quality wasn't there, we still made chances but just couldn't finish them."
West Ham manager Alan Pardew:
"Marlon Harewood has always had potential to cause major damage, he has got such body strength. He has to play at full pace.
"I thought Nigel Reo-Coker put in a performance that would make Sven-Goran Eriksson take note, it was that good.
"He is England Under-21 captain and he is making massive strides in this division."
Fulham: Warner, Volz, Knight (Christanval 80), Bocanegra, Niclas Jensen, Malbranque, Claus Jensen, Diop, Boa Morte, McBride, Radzinski (John 67).
Subs Not Used: Batista, Helguson, Elrich.
Booked: Boa Morte, Bocanegra.
Goals: Boa Morte 66.
West Ham: Carroll, Repka, Ferdinand, Gabbidon, Konchesky, Harewood (Aliadiere 87), Mullins, Reo-Coker, Etherington, Benayoun (Sheringham 74), Zamora (Newton 64).
Subs Not Used: Hislop, Dailly.
Booked: Reo-Coker.
Goals: Harewood 46, Warner 52 og.
Att: 21,907
Ref: G Poll (Hertfordshire).