Cyrus Christie’s cracking strike gave Fulham a much needed win in the west London derby.
Christie thumped home from 25 yards with 15 minutes remaining at the Kiyan Prince Foundation Stadium, where Ryan Manning headed Ebere Eze’s late corner against the bar.
Harry Arter hauled Fulham, who were without the suspended Aleksandar Mitrovic, level after Jordan Hugill had put QPR ahead inside the first minute.
Hugill rose above Tim Ream to head home Manning’s cross.
Both teams had lost both their games since the season resumed, with Fulham’s dip potentially derailing their promotion challenge.
But Arter hit back for them on 21 minutes – shortly after Harrison Reed almost equalised when his shot hit the post.
Dominic Ball and keeper Liam Kelly were at fault.
A misjudgement by Ball enabled Arter to turn away from him, and Kelly allowed the midfielder’s shot to bounce over him at his near post.
Luke Amos missed a great chance to restore Rangers’ lead when he blazed over after being perfectly set up by Bright Osayi-Samuel’s cut-back.
And an unchallenged Bobby Decordova-Reid squandered a chance to put Fulham ahead when he headed Tom Cairney’s corner over from close range four minutes before half-time.
Fulham keeper Marek Rodak then produced a fabulous save to deny Hugill, who let fly with a powerful shot on the turn after being found by Manning.
Manning also crossed for Todd Kane early in the second half, but he volleyed over.
Christie, however, emphatically capitalised after Rangers failed to close him down midway inside their half.
QPR: Kelly, Kane (Shodipo 80), Kakay, Barbet, Manning, Ball (Chair 90), Cameron, Amos, Eze, Osayi-Samuel (Oteh 80), Hugill.
Subs not used: Lumley, Rangel, Masterson, Clarke, Gubbins, Bettache.
Fulham: Rodak, Odoi, Hector, Ream, Christie, Arter (Onomah 70), Cairney, Reed, Knockaert (Bryan 70), Cordova-Reid (Le Marchand 79), Cavaleiro.
Subs not used: Bettinelli, McDonald, Johansen, De La Torre, Sessegnon, Jasper.