Dimitar Berbatov and Alex Kacaniklic scored as Fulham claimed only their second away win of the season against high-flying West Brom.
Berbatov put the Cottagers ahead with a low strike before Romelu Lukaku equalised just after the break with a close-range effort.
Lukaku and Zoltan Gera both hit the post for the Baggies.
But Kacaniklic secured the deserved win for the visitors after a clever ball from Bryan Ruiz set up his low strike.
It has certainly been a very different first half of the season for these two sides as West Brom fly high under the tutelage of Steve Clarke with their highest-ever points tally for this time of the year.
On the contrary, Martin Jol's side had won only one game in the last 12 before this after a promising start to the campaign and only earned one victory on their travels so far this season - at Wigan in September.
However, they got their second away win here and it was Jol's side who got off to the better start with the early pressure as Steve Sidwell flashed a shot over the bar.
It was a subdued New Year's Day atmosphere early on at The Hawthorns, even when Gareth McAuley headed wide for the hosts and Lukaku had a close-range effort blocked.
Berbatov was pulling the strings for Fulham but wasted a great chance on the half-hour mark when he hit a lazy effort well over after West Brom's Chris Brunt failed to clear.
However, Berbatov showed his real class to get his seventh goal of the season. His long pass out wide sent Ashkan Dejagah down the right before the Bulgarian trotted to the edge of the area to receive the ball back from his team-mate before sliding his shot through Ben Foster's legs.
West Brom were level within moments of the restart as Billy Jones took advantage of some poor defending down the right as he weaved into space before crossing for Lukaku who turned the ball home - although the on-loan Chelsea striker may have been offside.
After the drab opening half, this was a pulsating start to the second period and Lukaku struck the outside of the post when Aaron Hughes failed to clear.
The Baggies striker then forced a good stop from Fulham goalkeeper David Stockdale before former Cottager Zoltan Gera struck the post on the rebound and then Hughes headed away the following effort from Brunt.
Fulham were back ahead in the 58th minute as Ruiz's superb ball put Kacaniklic in and he turned McAuley and Jones on the edge of the area before coolly sliding the ball under Foster.
Only Stoke and Manchester City had left this ground with three points this term before this result and second-half substitute Shane Long tried to preserve West Brom's record but his stoppage-time flick from close range was saved by Stockdale.
West Brom manager Steve Clarke: "I don't think we played as we can do. First half we were way off the mark. I'm not sure if it was the consequence of four games in 10 days or not.
"In the second half it was better, we did the hard work to get back into it but then we gave it away. We could not quite get the second equaliser.
"Nobody can question the character of the team. Right at the death, with a bit of luck, we would have got the goal that our second-half performance deserved."
Fulham manager Martin Jol: "To win against a West Brom side who are flying - that is a great way to start the new year.
"I was very happy with the performance from everyone. If you lose games and don't do well, Berbatov is the first to get criticised because of his body language but I can assure you he always wants to win.
"I thought overall for the boys it was good for our confidence because we were struggling results wise. Our away record is not fantastic but this is our second win and we should have won maybe three of the four draws."