Stoke almost threw away a 3-0 half-time lead against Fulham but eventually clung on to end a run of six Barclays Premier League matches without victory.
The Cottagers were stunned as Tuncay Sanli nodded in a close-range header from a 12th-minute corner and the Potters then scored twice within three minutes of each other just after the half-hour through Abdoulaye Faye and Mamady Sidibe.
Damien Duff pulled one back in the 61st minute before a stunning Clint Dempsey volley five minutes from time set up a rousing finale.
The win was the Potters' first in the league since November 22, while Fulham have now gone nine away matches without victory.
It was also the first time Stoke had scored three in the Premier League since August 23, 2008 - their second game back in the top flight.
There was certainly nothing in their current form to suggest they were due a few as the team had failed to score in five of their last six league matches and prior to kick-off had registered just 15 goals in 19 matches.
If losing goalkeeper Thomas Sorensen in the warm-up with a recurrence of a finger injury sustained in Saturday's FA Cup tie against York caused any disruption to the home side it did not show.
In only the second minute Matt Etherington had the ball in the net but was at least two yards offside when Sidibe released the pass.
Faye's foul on Bobby Zamora gave Danny Murphy a 28-yard free-kick which he hit low, sending stand-in goalkeeper Steve Simonsen the wrong way only for it to roll just past the post.
The Fulham captain was then robbed of possession by Tuncay 10 yards inside his own half and it was to prove costly as the Turkey international ran into the area to force a corner.
Robert Huth nodded on Etherington's inswinging delivery to the far post where Tuncay headed past Mark Schwarzer from close range.
Sidibe almost doubled the lead four minutes later after some neat control and a shot on the turn from Danny Higginbotham's left-wing cross but his effort was too close to the goalkeeper.
Fulham came close to an equaliser when Zoltan Gera's effort went just wide from Duff's corner but Paul Konchesky's needless obstruction on Liam Lawrence as the pair chased a ball to the byline on the right gave Etherington another chance to whip in a dangerous cross and once again he delivered perfectly.
The ball dipped over the crowd in the centre of the penalty area and dropped to the far post where Faye slid in to score in the 34th minute.
Three minutes later Stoke were 3-0 up after a flowing move down their left when Tuncay and Etherington combined for the latter to cross to Danny Higginbotham in the penalty area.
He headed it to the far post where Sidibe smashed in a half-volley for his first goal of the season.
Tuncay limped off just before the interval to be replaced by Ricardo Fuller, who had a header in first half added time scrambled off the line and a close-range shot deflected over by Schwarzer.
Brede Hangeland, who had returned from a groin injury but had not looked comfortable against Sidibe, was replaced by Chris Smalling after the break.
Fulham suffered another blow when Zamora went off with a shoulder injury after a foul by Faye, who was booked.
However, his replacement Dempsey provided the assist for Fulham's goal in the 61st minute when he played the ball across the 18-yard line and Duff hit a left-footed shot which deflected off Ryan Shawcross and past Simonsen.
Stoke's best chance of the second half came in the 74th minute when Fuller cut in from the right but saw his deflected shot off Smalling palmed around the near post by Schwarzer.
Erik Nevland was sent on for Andy Johnson with seven minutes remaining and it was his flick-on which picked out Dempsey to smash in a dipping volley from 35 yards in the 85th minute.
The closing stages were frantic but Stoke just held on.
Copyright (c) PA Sport 2009, All Rights Reserved.