Pavel Pogrebnyak scored on his Fulham debut to help condemn Stoke to a fourth successive Premier League defeat.
The Russian striker smashed a left-footed effort into the top corner from 15 yards after controlling John Arne Riise's low drive into the box.
Fulham doubled their lead when the ball cannoned in off Thomas Sorensen after the Stoke keeper tipped Clint Dempsey's 30-yard strike on to the bar.
A late Ryan Shawcross header ensured a nervy finish for the home side.
Shawcross's goal, which came from a corner with 13 minutes remaining, rattled Fulham in a game they were comfortably in control of up until that point.
However, the home side managed to hold on and leapfrog Stoke in mid-table.
Both sides started slowly, but the peace inside Craven Cottage was shattered in the 16th minute when Pogrebnyak gave the home side the lead.
The striker, brought in from Stuttgart as a replacement for Bobby Zamora in January to help stop the over-reliance on Dempsey for goals, showed tremendous composure to open his Fulham account.
He reacted quickly to dig Riise's low ball out from under his feet before finding the top left-corner with a fierce drive.
His enthusiasm to impress the home fans could have earned him a booking moments later for a studs-up challenge on Stoke's Wilson Palacios. Referee Chris Foy gave him the benefit of the doubt.
The visitors, who have now won just one of their last nine Premier League games, failed to create a noteworthy chance in the first half but were slightly unlucky to go into the break 2-0 down.
There appeared to be no danger when Dempsey collected the ball midway into the Stoke half, but the Fulham midfielder, who is brimming with confidence having scored 16 goals this season, unleashed a 30-yard effort.
While Sorensen did well to tip the swerving, dipping shot on to the bar, the ball ricocheted down and rolled over the line after hitting the helpless keeper.
Stoke emerged after half-time with more purpose and were close to pulling a goal back in the opening minute when Matthew Upson volleyed over from inside the six-yard box.
However, their early endeavour petered out as Fulham showed more tenacity through midfield in a second half of few chances.
The game began to sway more in Stoke's favour after Pogrebnyak was substituted on the hour mark, injuring his right ankle in a challenge with Shawcross.
Stoke boss Tony Pulis sent on attack-minded duo Jermaine Pennant and Ricardo Fuller and City looked a little more threatening.
And Shawcross grabbed the visitors a lifeline, glancing a near-post header into the far corner.
Suddenly, Fulham looked ragged at the back and centre-back Brede Hangeland was booked after giving away a needless free-kick for a shove on Pennant.
Pennant delivered the set-piece to the back post and Fuller nodded down to Peter Crouch, but the England striker hooked his volley wide from four yards.
Stoke continued to press in stoppage time but it was Fulham who came closest to scoring a third.
Dempsey nudged the ball past Sorensen after chasing a long clearance but the American could only hit the post from a tight angle when faced with an open goal.
Fulham manager Martin Jol: "We played the first half in the style I would like us to play and scored two very good goals in the first half an hour.
"In the second half they really pressed us and we couldn't play our football anymore.
"I've got to say it is an unbelievable style you have to play against and we stood up to the challenge."
Stoke manager Tony Pulis: "I've had a player who pulled out of a tackle last week and got a three-match ban, Pogrebnyak's tackle [on Wilson Palacios] was ten times as bad and he didn't even get booked.
"If Chris Foy didn't see it then Kevin Friend certainly did. I'm disappointed with the inconsistency in the Premier League - we need some clarification on tackles.
"We are going to put a compilation of incidents together over the next few days. We will do it very professionally, in a proper manner, and then we'll send it off to the FA."
Sorry, we were unable to load match stats, please try again.