Goalkeeper Adam Davies had a huge hand in proceedings after making nine saves, one of those being a penalty from Charlie Austin, to keep his clean sheet.
Now, QPR go fifth while Stoke mount a promotion charge sneaking up to sixth.
Following last Monday's dramatic late win at Derby County, QPR opted for two changes to the lineup against Stoke.
Lee Wallace suffered a hamstring injury in that game, so Sam Field was in to take the Scots place. Albert Adomah also made way for Osman Kakay's ninth league appearance of the season. Last week's emphatic match winner Andre Gray was one of six substitutes for QPR. Regular Yoann Barbet was in the defence for his 100th QPR appearance.
QPR: Dieng; Dickie, Dunne, Barbet, Field, Johansen (C), Dozzell, Kakay, Chair, Willock, Austin.
Stoke's last outing was less dramatic than that of Sunday's opponents, however, Michael O'Neill also opted for two changes.
Stoke City: Davies, Wilmot, Batth, Fox, Tymon, Allen (C), Sawyers, Smith, Vrancic, Fletcher, Campbell.
Story of the match
On what was a damp day in West London, the hosts looked to start brightest. From the off, QPR seemed happy on the ball and smart link up reflected their will to play.
It was a move from back to front that had Stoke chasing the ball. Rob Dickie moved it out of defence before Stefan Johansen found Osman Kakay who's cross was blocked. Nothing came from the resulting corner but it showed QPR's readiness.
As was the way for many games across the country this weekend, the sixth minute was rightly signified to recognise young Arthur Labinjo-Hughes. It was a touching moment, even players got involved.
Despite hobbling, Ilias Chair was back in the mix - forcing a fine save from Adam Davies on eight minutes. Although small in stature, Chair had a free header and his nod zipped off the tricky surface forcing Davies across to his left clawing it away.
Back up the other end, Stoke's first real chance put an onus on Sieny Dieng's reactions. Tyrese Campbell was free on the edge and his side foot was met by the Senegalese getting down well to his left. An alert Steven Fletcher immerged as Dieng dived heroically once more, although the Scot was deemed offside.
City's next chance would be the breakthrough and it would be that man again Campbell to get it on 14 minutes. Played in skilfully by Mario Vrancic, the 21-year-old took the ball in his stride before slotting home excellently into the bottom left.
The striker's second goal of the season was well against the run of play and seemingly had Rangers fans shocked - this was noticeable as the chants rang out with inquisitive Potters bellowing 'is this a library?'
The QPR fans would find their voices again though, as despite going behind, their side continued to have most of the ball. 25 minutes showed the Hoops having 69% of possession, although the offensive edge looked blunt.
Stoke City were dangerous out wide and on the break and this time Steven Fletcher came close. On 39 minutes, Campbell linked up well with Josh Tymon and the left wing back's cut in found Fletcher. His shot was blocked excellently and deflected narrowly wide off Yoann Barbet and the right post.
The first half ended the direct opposite of the way it began. Stoke were on top and half chances from the dangerous Campbell and the creative Vrancic had QPR ready to regroup at the half time whistle.
The second period started with a swell of action. A Charlie Austin half volley forced a strong hand from Davies on 49 minutes before Stoke went up the other end with Josh Tymon forcing an athletic save from Dieng.
Next up, a central free kick from Yoann Barbet was nothing more than a sighter as Davies punched away, but the French defender would be involved again. A Chair corner from the left saw Vrancic grappling and throwing Barbet to the ground. The referee gave a penalty and QPR a lifeline.
However, it was an opportunity Charlie Austin couldn't take. His penalty into the bottom left was sluggish and predictable for Davies who added to his impressive display with a fine penalty save.
Substitutions came on 67 minutes and Stoke's change saw a hobbling Tyrese Campbell make way for Jacob Brown. Not long after the 23-year-old's introduction, he'd have the ball in the net. Alas the Potters’ joy was cut short by the linesman's flag for offside.
Stoke would eventually double the lead though and the second goal would see Mario Vrancic go from provider to scorer. The Bosnian international was given too much space and with one body feint he was prone to pass the ball delightfully into the bottom right corner.
Credit to them, QPR carried on fighting and the earlier introduction of substitute George Thomas looked to be a positive. The midfielder forced yet another save from the busy Adam Davies, breaking throught the offside trap before being blocked. Then, after this on 87 minutes and from the prevailing corner his glancing effort floated just wide.
As the clock went red, five additional minutes were signalled and QPR still looked for what would now be a consolation. Unfortunately for them, Adam Davies continued to stand firm and denied Luke Amos with a great fingertip stop on 92' before also denying Andre Gray a minute later. It was a remarkable display from the goalkeeper - who ended the day with nine saves, one of those being a penalty and a clean sheet intact.
QPR, who started the day third, now go fifth after this defeat. Their next game is away at Sheffield United. Stoke on the other hand move up to sixth place after this first win in three games. Their next match is at home to Middlesbrough.