Sambegou Bangoura scored his sixth goal in five games but could not prevent 10-man Stoke losing again at home.
Paul Furlong put QPR ahead with just over a minute gone after Stoke failed to clear Danny Shittu's free-kick.
Peter Sweeney's free-kick was headed in by Bangoura to level but John Halls was sent off for fouling Furlong after Martin Rowland's drive was parried.
Richard Langley netted from the spot and QPR held out for the three points to end a five-match winless run.
Stoke: Simonsen, Broomes, Duberry, Hoefkens, Halls, Sweeney (Sigurdsson 76), Brammer, Henry, Chadwick, Bangoura, Sidibe.
Subs Not Used: de Goey, Kolar, Buxton, Junior.
Sent Off: Halls (51).
Booked: Brammer, Sigurdsson.
Goals: Bangoura 26.
QPR: Royce, Bignot, Shittu, Milanese, Dyer (Evatt 59), Bean, Langley, Rowlands, Ainsworth (Cook 88), Moore (Baidoo 90), Furlong.
Subs Not Used: Cole, Donnelly.
Booked: Milanese, Ainsworth, Bean, Rowlands.
Goals: Furlong 2, Langley 52 pen.
Att: 15,367
Ref: A Marriner (W Midlands).