Substitute Djibril Cisse boosted QPR's Premier League survival hopes with a late winner against a stubborn Stoke side at Loftus Road.
An unmarked Cisse converted Anton Ferdinand's near-post flick from Adel Taarabt's corner to keep Rangers above Bolton and out of the relegation zone.
Stoke's Thomas Sorensen had already brilliantly denied Taarabt and Cisse.
'Huge' performance pleases Hughes
But it could have been different had Cameron Jerome not fired a glorious early chance into the side-netting.
Rangers had battled valiantly to break down Stoke's determined rearguard but failed to find a way through until Cisse's fifth goal in seven games
since his January switch from Lazio.
Victory means QPR travel to title-chasing Manchester City, who will lift the Premier League crown with a final-day win, needing just a point to escape an instant return to the Championship.
A packed Loftus Road erupted after Cisse's 89th-minute intervention, which completely transformed the top-flight's race for survival in a crucial few minutes.
Conor McNamaraBBC Radio 5 live commentator
"Life is never dull when Djibril Cisse is around. The French striker has continued his run of either scoring or being sent off in every game he has played for Queens Park Rangers since joining the club in January. Happily for Mark Hughes it was another goal against Stoke and not a dismissal."
Mark Hughes's men looked like they were going to need a victory at the Etihad Stadium to stand any chance of preserving their status with third-bottom Bolton leading 2-0 against West Brom.
But the Baggies'
late fightback for a draw,
coupled with QPR's breakthrough, appears to put the west Londoners into the driving seat to stay up.
Hughes has long stressed that winning their battle to beat the drop would hinge on the number of points they managed to pick up at Loftus Road and he looked jubilant as Rangers clinched a remarkable fifth straight home win.
They started at a brisk tempo and enjoyed plenty of possession throughout with Taarabt, returning after a one-match suspension for his red card against Tottenham, spearheading the majority of their attacking play.
Pulis frustrated after QPR defeat
Their best first-half chance fell to the Moroccan, whose low 30-yard free-kick was pushed out by Sorensen only as far as Joey Barton who steered the rebound into the side netting from an acute angle.
Barton also headed straight at the Danish shot-stopper from point-blank range after leaping high to meet Bobby Zamora's cross moments later.
Sorensen produced a terrific one-handed save after the break to claw away Cisse's goalbound header as QPR continued to push forward in search of a much-needed winner.
Stoke have limped through the final throes of the season after securing safety weeks ago, despite boss Tony Pulis warning his players they still had plenty to play for.
The Welshman was desperate for Stoke to claim their first Premier League top-half finish since winning promotion in 2008 and reach the 50-point barrier.
Did you know?
The last time QPR won five consecutive home games in the top-flight came between August and October in the 1987-88 season.
They looked to be cruising towards both of those achievements before a recent run of just one win in ten matches.
But it could have been a totally different outcome for both teams had Jerome netted in the fourth minute.
Jerome, promoted to the Potters starting XI
after his midweek equaliser against Everton,
found space on the edge of the Hoops six-yard box to meet Peter Crouch's headed knockdown before lashing the ball past the wrong side of the post.
It was a huge let-off for Hughes and his men, who travel to Manchester next weekend knowing their future is back in their own hands.
Stoke manager Tony Pulis:
"I'm massively frustrated because we didn't deserve to lose.
"The disappointing thing is we had opportunities and chances today but again we've not scored. That's been a problem all season if you look at our goals tally.
"We switched off from a set play and they've scored."
Substitution Jay Bothroyd comes on in place of Bobby Zamora.
Adel Taarabt takes the inswinging corner,
The referee blows for offside. Thomas Sorensen restarts play with the free kick.
Substitution Dean Whitehead is brought on as a substitute for Ricardo Fuller.
Substitution Cameron Jerome leaves the field to be replaced by Kenwyne Jones.
Djibril Cisse takes a shot. Save made by Thomas Sorensen. Effort on goal by Joey Barton from outside the box goes harmlessly over the bar.
Adel Taarabt takes a shot. Ryan Shawcross gets a block in.
Joey Barton has an effort at goal from 12 yards. Ryan Shotton gets a block in.
Corner taken by Adel Taarabt played to the near post, clearance by Cameron Jerome. Adel Taarabt takes a short corner.
Ryan Shotton concedes a free kick for a foul on Adel Taarabt. Direct free kick taken by Patrick Kenny.
Free kick awarded for a foul by Joey Barton on Glenn Whelan. Matthew Upson takes the direct free kick.
Ricardo Fuller gives away a free kick for an unfair challenge on Joey Barton. Free kick crossed right-footed by Adel Taarabt, clearance made by Peter Crouch.
Matthew Upson concedes a free kick for a foul on Bobby Zamora. Shot comes in from Taye Taiwo from the free kick, blocked by Glenn Whelan. Shot by Taye Taiwo. Blocked by Robert Huth. Effort on goal by Adel Taarabt from just outside the penalty area goes harmlessly over the target.
Corner taken short by Adel Taarabt.
Cameron Jerome is penalised for handball and concedes a free kick. Patrick Kenny restarts play with the free kick.
Robert Huth takes the chance to get an effort at goal. Blocked by Joey Barton.
Free kick awarded for a foul by Joey Barton on Ricardo Fuller. Free kick crossed right-footed by Glenn Whelan from left wing, Anton Ferdinand manages to make a clearance.
Glenn Whelan has an effort at goal from outside the penalty box missing to the wide right of the goal.
Ricardo Fuller concedes a free kick for a foul on Nedum Onuoha. Patrick Kenny restarts play with the free kick.
Djibril Cisse takes a shot. Blocked by Ryan Shawcross.
Foul by Ryan Shawcross on Joey Barton, free kick awarded. Free kick taken by Taye Taiwo.
Substitution Djibril Cisse on for Akos Buzsaky.
Shot from just outside the box by Ricardo Fuller misses to the left of the goal.
Free kick awarded for an unfair challenge on Peter Crouch by Anton Ferdinand. Thomas Sorensen takes the direct free kick.
Robert Huth gives away a free kick for an unfair challenge on Jamie Mackie. Direct free kick taken by Nedum Onuoha.
Headed effort from deep inside the penalty area by Peter Crouch misses to the right of the target.
Ryan Shotton fouled by Adel Taarabt, the ref awards a free kick. Free kick crossed right-footed by Glenn Whelan, Nedum Onuoha manages to make a clearance.
The second half kicks off.
Substitution (Stoke) makes a substitution, with Ryan Shotton coming on for Marc Wilson.
45:00 +2:02 Half time
Half Time The half-time whistle blows.
Peter Crouch fouled by Nedum Onuoha, the ref awards a free kick. The free kick is delivered right-footed by Glenn Whelan from left wing, clearance by Nedum Onuoha.
Unfair challenge on Adel Taarabt by Rory Delap results in a free kick. Adel Taarabt crosses the ball from the free kick right-footed from right channel, free kick awarded for an unfair challenge on Marc Wilson by Shaun Derry. Direct free kick taken by Thomas Sorensen.
Free kick awarded for a foul by Peter Crouch on Shaun Derry. Patrick Kenny takes the direct free kick.
Peter Crouch fouled by Joey Barton, the ref awards a free kick. Direct free kick taken by Matthew Upson.
Peter Crouch challenges Nedum Onuoha unfairly and gives away a free kick. Direct free kick taken by Patrick Kenny.
Anton Ferdinand challenges Peter Crouch unfairly and gives away a free kick. Rory Delap restarts play with the free kick.
Joey Barton takes a shot. Save made by Thomas Sorensen.
Shot from just outside the box by Joey Barton goes over the bar.
Adel Taarabt takes a shot. Blocked by Robert Huth.
Adel Taarabt fouled by Cameron Jerome, the ref awards a free kick. Adel Taarabt delivers the ball from the free kick right-footed from left wing.
Ryan Shawcross concedes a free kick for a foul on Clint Hill. Direct free kick taken by Patrick Kenny.
Ryan Shawcross fouled by Bobby Zamora, the ref awards a free kick. Direct free kick taken by Thomas Sorensen.
Adel Taarabt fouled by Marc Wilson, the ref awards a free kick. Free kick crossed right-footed by Adel Taarabt, save by Thomas Sorensen.
Adel Taarabt takes a shot. Blocked by Ryan Shawcross.
The referee gives a free kick against Jonathan Walters for handball. Taye Taiwo takes the free kick.
Marc Wilson challenges Adel Taarabt unfairly and gives away a free kick. Patrick Kenny restarts play with the free kick.
Adel Taarabt fouled by Marc Wilson, the ref awards a free kick. Strike on goal comes in from Adel Taarabt from the free kick, save by Thomas Sorensen. Joey Barton has an effort at goal from close range which goes wide left of the target.
Effort on goal by Ryan Shawcross from just inside the penalty area goes over the target.
Free kick awarded for an unfair challenge on Adel Taarabt by Marc Wilson. Adel Taarabt has an effort direct from the free kick, Thomas Sorensen makes a save. Shot from close in by Joey Barton misses to the left of the target.
Outswinging corner taken right-footed by Glenn Whelan from the right by-line, clearance made by Anton Ferdinand.
Glenn Whelan takes the outswinging corner, Bobby Zamora makes a clearance.
Unfair challenge on Ryan Shawcross by Bobby Zamora results in a free kick. Direct free kick taken by Matthew Upson.
Effort from outside the area by Adel Taarabt goes wide right of the goal.
Shot from close range by Cameron Jerome misses to the right of the goal.
Nedum Onuoha challenges Ricardo Fuller unfairly and gives away a free kick. Robert Huth restarts play with the free kick.
The referee gets the game started.
Live text and data provided by The Press Association
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.