Johnson opened the scoring with a sweetly-struck free-kick just before the half-hour mark and then set up Ki Sung-yeung to make it 2-0.

Ki then returned the favour for Johnson to score again midway through the second half after Fulham had reduced the deficit through Steve Sidwell, and he completed his hat-trick from the spot five minutes from time.

The result lifts Sunderland off the bottom of the table and, while they remain in the relegation zone, they are now within two points of the Cottagers, who are 16th.

Gustavo Poyet's side were fresh from a 2-1 win against Manchester United in midweek in their League Cup semi-final first leg, but they had only managed one win in nine league matches.

They also lost 1-0 to Fulham when the teams met at the Stadium of Light on the opening day of the season but the London club have been particularly suspect defensively in recent weeks, conceding 16 goals in five league matches coming into the weekend.

They went behind with 28 minutes played here. Referee Mike Dean awarded a free-kick 25 yards out, and Johnson stepped up to curl a left-footed shot into the top-right corner of David Stockdale's net.

The goalkeeper should perhaps have done better, but Johnson was not complaining and he was then the architect when the visitors doubled their lead four minutes before the break.

This time he played a short free-kick from the right low for Ki, whose first-time shot found the net through a crowd of players.

Fulham boss Rene Meulensteen would have had strong words for his players at the interval and they got back into the game in the 52nd minute when Damien Duff's corner from the right was headed home from inside the six-yard box by an unchallenged Sidwell.

That gave the hosts hope of taking something from the game, but Johnson and Sunderland had other ideas.

They restored their two-goal advantage in the 69th minute at the end of a superb counter-attack, as Ki played a one-two with substitute Jozy Altidore and then slipped a terrific ball in behind the home defence for Johnson, who had raced up the right wing and finished low past Stockdale.

The former Manchester City winger was not finished there though. When Altidore was brought down inside the box by Philippe Senderos with five minutes to go, Johnson stepped up to slot home the resulting penalty and seal a convincing win for the visitors.

Fulham have now conceded four goals or more in four of their last six games, and a disappointing day for them was summed up when Vito Mannone somehow denied Sidwell from point-blank range right at the death.