Tom Cairney earlier saw another spot-kick saved by QPR keeper Alex Smithies, before Conor Washington's deflected shot put the visitors ahead.
Tim Ream deservedly drilled level straight after half-time for Fulham, who saw Aluko miss several chances.
Idrissa Sylla's header restored QPR's lead late on before Aluko's miss after a foul on Jozabed Sanchez Ruiz.
The Spanish midfielder also hit the bar with a free-kick for the hosts in stoppage time, as Fulham undeservedly saw their winless run extended to seven matches in all competitions.
Chris Martin had stumbled in front of an open QPR goal before the break and Neeskens Kebano also missed a clear headed chance in the second half.
Victory for QPR, whose boss Jimmy Floyd Hasselbaink is the subject of an internal club investigation after being named in a Daily Telegraph investigation into corruption in football, but denies any wrongdoing, was their first in six Championship games.
Their opening goal came against the run of play, after Smithies had kept them level with a superb save from Fulham's first penalty, awarded after Steven Caulker held Ragnar Sigurdsson in the box.
But their winner came after their best spell of pressure, Sylla heading in from Tjaronn Chery's fine cross.
QPR boss Jimmy Floyd Hasselbaink told BBC Sport:
"It's been a very difficult few days, my lawyers and staff are waiting for the transcripts so we can help with the investigation for the club, we want to resolve it as soon as possible but coming here, preparing the boys, delivering that display, all credit it to them.
"With all the setbacks, it feels like we are fighting everybody. You know what has happened in the last few days, we are fighting the referees with the strange decisions and we are fighting the public.
"That penalty in the last couple of minutes is just ridiculous. The player (Nedum Onuoha) did not even touch (Jozabed), not even close. So at the moment, it feels like I'm fighting everybody. Now we have got the international break I can now concentrate on my family and give my family my love."
Asked how confident he is that he will clear his name:
"I don't want to say too much. I've said what I needed to say I can't say too much but if you have seen my interview then you know how confident I am."
Fulham manager Slavisa Jokanovic:
"It's very frustrating, we couldn't be clinical in the opposite box, we weren't solid in our box.
"It was a strange game. At the end of the game only the result is important. I accept my responsibility as we didn't win any points.
"Our solution is stick together, be organised, disciplined, still more solid in defence because we didn't concentrate that solidly."
Match ends, Fulham 1, Queens Park Rangers 2.
Second Half ends, Fulham 1, Queens Park Rangers 2.
Penalty missed! Still  Fulham 1, Queens Park Rangers 2. Sone Aluko (Fulham) hits the right post with a left footed shot.
Idrissa Sylla (Queens Park Rangers) is shown the yellow card.
Penalty Fulham. Jozabed draws a foul in the penalty area.
Penalty conceded by Nedum Onuoha (Queens Park Rangers) after a foul in the penalty area.
Jozabed (Fulham) hits the bar with a right footed shot from outside the box from a direct free kick.
Matt Smith (Fulham) wins a free kick in the attacking half.
Foul by Steven Caulker (Queens Park Rangers).
Offside, Queens Park Rangers. Massimo Luongo tries a through ball, but Olamide Shodipo is caught offside.
Corner,  Fulham. Conceded by Alex Smithies.
Attempt saved. Tim Ream (Fulham) right footed shot from the centre of the box is saved in the top centre of the goal. Assisted by Jozabed with a cross.
Corner,  Fulham. Conceded by Massimo Luongo.
Goal!  Fulham 1, Queens Park Rangers 2. Idrissa Sylla (Queens Park Rangers) header from very close range to the bottom left corner. Assisted by Tjaronn Chery with a cross.
Attempt blocked. Steven Caulker (Queens Park Rangers) header from the left side of the box is blocked. Assisted by Tjaronn Chery with a cross.
Corner,  Queens Park Rangers. Conceded by David Button.
Attempt missed. Nedum Onuoha (Queens Park Rangers) header from the left side of the six yard box is just a bit too high. Assisted by Tjaronn Chery with a cross following a set piece situation.
Tim Ream (Fulham) is shown the yellow card for a bad foul.
Foul by Tim Ream (Fulham).
Olamide Shodipo (Queens Park Rangers) wins a free kick on the right wing.
Substitution, Queens Park Rangers. Niko Hamalainen replaces Joel Lynch.
Attempt blocked. Idrissa Sylla (Queens Park Rangers) header from the centre of the box is blocked. Assisted by Tjaronn Chery with a cross.
Corner,  Queens Park Rangers. Conceded by Scott Malone.
Substitution, Fulham. Jozabed replaces Scott Parker.
Hand ball by Scott Parker (Fulham).
Delay over. They are ready to continue.
Delay in match Scott Parker (Fulham) because of an injury.
Karl Henry (Queens Park Rangers) is shown the yellow card.
Attempt missed. Neeskens Kebano (Fulham) header from the right side of the six yard box misses to the right. Assisted by Scott Malone.
Attempt saved. Scott Malone (Fulham) left footed shot from outside the box is saved in the top centre of the goal. Assisted by Tim Ream.
Corner,  Fulham. Conceded by Steven Caulker.
Attempt blocked. Matt Smith (Fulham) right footed shot from the right side of the box is blocked. Assisted by Scott Parker.
Substitution, Fulham. Neeskens Kebano replaces Tom Cairney.
Attempt missed. Ryan Tunnicliffe (Fulham) right footed shot from outside the box misses to the left following a corner.
Delay over. They are ready to continue.
Delay in match Alex Smithies (Queens Park Rangers) because of an injury.
Corner,  Fulham. Conceded by Joel Lynch.
Attempt blocked. Massimo Luongo (Queens Park Rangers) left footed shot from the right side of the box is blocked. Assisted by Tjaronn Chery.
Sone Aluko (Fulham) wins a free kick in the defensive half.
Foul by Massimo Luongo (Queens Park Rangers).
Fulham's Sone Aluko hit the post with a last-gasp penalty as QPR held on to win an enthralling west London derby.