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."
- 01 Schwarzer
- 02 Kelly
- 03 JA Riise
- 05 Hangeland Booked
- 18 Hughes
- 13 Murphy (Etuhu - 80' )
- 16 Duff
- 23 Dempsey
- 07 Pogrebniak (Davies - 62' )
- 11 Ruiz (Baird - 89' )
- 30 Dembele
- 12 Stockdale
- 06 Baird
- 15 Gecov
- 20 Etuhu
- 21 Frei
- 29 Davies
- 42 Trotta
- 29 Sorensen
- 17 Shawcross
- 20 Upson
- 28 Wilkinson (Shotton - 68' )
- 06 Whelan
- 12 Wilson Booked
- 26 Etherington (Pennant - 67' )
- 40 Palacios Booked
- 09 Jones (Fuller - 66' )
- 19 Walters
- 25 Crouch
- 01 Begovic
- 30 Shotton
- 39 Woodgate
- 16 Pennant
- 18 Whitehead
- 10 Fuller
- 33 Jerome
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +5:19
Clint Dempsey produces a left-footed shot from inside the penalty area and hits the post.90:00 +2:31
The official flags Clint Dempsey offside. Thomas Sorensen takes the free kick.90:00 +2:05
Peter Crouch is penalised for handball and concedes a free kick. John Arne Riise restarts play with the free kick.90:00 +0:21
Ryan Shawcross challenges Brede Hangeland unfairly and gives away a free kick. Mark Schwarzer takes the direct free kick.88:32 Substitution
Substitution Chris Baird on for Bryan Ruiz.85:36
Free kick awarded for an unfair challenge on Glenn Whelan by Moussa Dembele. Free kick crossed right-footed by Jermaine Pennant from right wing.82:19
Inswinging corner taken left-footed by Bryan Ruiz from the right by-line, save by Thomas Sorensen.82:05
Simon Davies takes a shot. Blocked by Ryan Shawcross.80:21
Bryan Ruiz challenges Matthew Upson unfairly and gives away a free kick. Free kick taken by Thomas Sorensen.79:30 Substitution
Substitution Dickson Etuhu comes on in place of Danny Murphy.79:06
Peter Crouch produces a left-footed shot from close range which goes wide of the left-hand upright.78:45
The free kick is delivered right-footed by Jermaine Pennant from right channel.78:45 Booking
Booking The referee shows Brede Hangeland a yellow card for unsporting behaviour.78:38
Foul by Brede Hangeland on Jermaine Pennant, free kick awarded.77:26
Assist by Jermaine Pennant.77:26 Goal scored
Goal! - Ryan Shawcross - Fulham 2 - 1 Stoke Ryan Shawcross grabs a headed goal from close range. Fulham 2-1 Stoke.77:08
Corner taken right-footed by Jermaine Pennant to the near post,76:44
Ricardo Fuller takes a shot. Blocked by Aaron Hughes.75:20
Peter Crouch has an effort at goal from outside the penalty area which goes wide right of the goal.
Free kick awarded for a foul by Simon Davies on Peter Crouch. Free kick taken by Ryan Shotton.71:00
Unfair challenge on Wilson Palacios by Stephen Kelly results in a free kick. Direct free kick taken by Jermaine Pennant.68:58
The offside flag is raised against Peter Crouch. Aaron Hughes restarts play with the free kick.67:09 Substitution
Substitution Andy Wilkinson goes off and Ryan Shotton comes on.66:07 Substitution
Substitution Matthew Etherington goes off and Jermaine Pennant comes on.65:53
Shot from just outside the box by Andy Wilkinson misses to the right of the goal.64:47 Substitution
Substitution Ricardo Fuller joins the action as a substitute, replacing Kenwyne Jones.63:38
Glenn Whelan takes a inswinging corner from the left by-line to the near post, clearance by Clint Dempsey.62:53
John Arne Riise fouled by Kenwyne Jones, the ref awards a free kick. John Arne Riise takes the direct free kick.61:18
Free kick taken by Matthew Upson.61:18 Substitution
Substitution Simon Davies on for Pavel Pogrebnyak.61:18
The official flags Pavel Pogrebnyak offside.53:56
Clint Dempsey takes a shot. Blocked by Ryan Shawcross.53:23
Foul by Marc Wilson on Clint Dempsey, free kick awarded. Danny Murphy restarts play with the free kick.52:32
The referee blows for offside against Pavel Pogrebnyak. Thomas Sorensen takes the indirect free kick.51:28
The referee penalises Peter Crouch for handball. Indirect free kick taken by Mark Schwarzer.50:44
Clint Dempsey gives away a free kick for an unfair challenge on Wilson Palacios. Thomas Sorensen restarts play with the free kick.50:06
John Arne Riise takes a shot. Blocked by Marc Wilson.49:21
Foul by Pavel Pogrebnyak on Ryan Shawcross, free kick awarded. Direct free kick taken by Thomas Sorensen.47:50
Peter Crouch is caught offside. Free kick taken by Mark Schwarzer.45:44
Jonathan Walters fouled by Clint Dempsey, the ref awards a free kick. The ball is sent over by Glenn Whelan, Shot by Matthew Upson from deep inside the six-yard box clear the bar.45:01
The referee starts the second half.45:00 +2:12 Half time
Half Time The ref blows to signal half-time.45:00 +1:28
Free kick awarded for a foul by Danny Murphy on Wilson Palacios. Free kick taken by Matthew Upson.43:49
Corner taken left-footed by Damien Duff, save made by Thomas Sorensen.43:33
Damien Duff takes a shot. Thomas Sorensen makes a save.43:02
Danny Murphy restarts play with the free kick.43:02 Booking
Booking The referee shows Wilson Palacios a yellow card for unsporting behaviour.42:48
Clint Dempsey fouled by Wilson Palacios, the ref awards a free kick.40:53
Danny Murphy produces a right-footed shot from just outside the box that goes wide right of the target.39:58
Free kick taken by Danny Murphy.39:58 Booking
Booking Caution for Marc Wilson.39:45
Free kick awarded for an unfair challenge on Clint Dempsey by Marc Wilson.37:55
Inswinging corner taken from the right by-line by Matthew Etherington, Headed effort from inside the area by Jonathan Walters misses to the left of the target.37:05
Corner from the left by-line taken by Glenn Whelan, save by Mark Schwarzer.35:18
Inswinging corner taken by Danny Murphy, Header on goal by Pavel Pogrebnyak from inside the box goes harmlessly over the target.34:41
Matthew Etherington takes a shot. Mark Schwarzer makes a save.32:42
Foul by Clint Dempsey on Glenn Whelan, free kick awarded. Direct free kick taken by Marc Wilson.30:22
Free kick awarded for an unfair challenge on Damien Duff by Matthew Etherington. Damien Duff restarts play with the free kick.27:28
Assist by Clint Dempsey.27:28 Goal scored
Goal! - Thomas Sorensen - Fulham 2 - 0 Stoke An own goal is scored by Thomas Sorensen. Fulham 2-0 Stoke.27:22
Clint Dempsey takes a shot.22:17
Wilson Palacios produces a right-footed shot from just outside the box that misses to the right of the target.20:18
Kenwyne Jones has an effort at goal from outside the box which goes wide right of the target.18:40
Unfair challenge on Wilson Palacios by Pavel Pogrebnyak results in a free kick. Free kick taken by Ryan Shawcross.17:07
Kenwyne Jones produces a left-footed shot from deep inside the penalty box which goes wide of the left-hand upright.15:35
Assist on the goal came from John Arne Riise.15:35 Goal scored
Goal! - Pavel Pogrebnyak - Fulham 1 - 0 Stoke Pavel Pogrebnyak gets on the score sheet with a goal from inside the box to the top left corner of the goal. Fulham 1-0 Stoke.15:34
John Arne Riise takes a shot.15:00
Glenn Whelan takes a shot. Save by Mark Schwarzer.13:24
Short corner worked by Danny Murphy.12:52
Corner from the left by-line taken by Danny Murphy, Matthew Upson makes a clearance.11:53
Long distance shot from Aaron Hughes misses to the left of the goal.6:41
The offside flag is raised against Peter Crouch. Mark Schwarzer takes the free kick.1:50
Unfair challenge on Glenn Whelan by Clint Dempsey results in a free kick. Free kick taken by Thomas Sorensen.0:00
The ref blows the whistle to begin the match.
Live data and text provided by our data suppliers