The 26-year-old England international played the key role in the 4-1 victory at Craven Cottage.
Johnson gave the visitors a 23rd-minute lead with a fine free-kick and then set up fellow midfielder Ki Sung-Yueng to double his side's advantage with a deflected 41st-minute shot.
Steve Sidwell headed Fulham back into it seven minutes after the restart, but Johnson added a second with 21 minutes remaining and converted an 85th-minute penalty to secure the points and leave Fulham in 16th place.
As a result, Crystal Palace slumped to the foot of the table after going down 2-0 at Tottenham. Tim Sherwood's men took the points with second-half goals from Christian Eriksen and substitute Jermain Defoe.
There were better fortunes for beleaguered West Ham boss Sam Allardyce as his side bounced back from shipping 11 goals in their last two games to win 2-0 at Cardiff.
Carlton Cole's 42nd-minute strike gave the visitors a half-time advantage and although the visitors had to play out the closing stages with just 10 men after defender James Tomkins was sent off for a second bookable offence, midfielder Mark Noble added a second in injury time.
Everton maintained their challenge for European qualification by overcoming Norwich 2-0 at Goodison Park. Gareth Barry opened the scoring with 23 minutes gone, before Kevin Mirallas wrapped up the points with a 59th-minute free-kick.
Adam Lallana's lone strike was all Southampton needed to see off West Brom 1-0.
Chelsea eased themselves back to the top of the table with a hard-fought 2-0 victory at Hull.
A stunning 57th-minute Eden Hazard strike put the visitors ahead and they cemented the win three minutes from time when Fernando Torres made sure of the points on his 200th Premier League appearance.