Yossi Benayoun scored during an excellent start for QPR, but the hosts were pegged back before Junior Hoilett finished well at the end of the half to restore their lead.
QPR could barely have wished for a better start, taking the lead after just two minutes when Benayoun reacted quickest to nod the ball in after Tom Carroll's long-range effort had been saved by the goalkeeper.
The former Liverpool man was involved again shortly after, combining well with Jermaine Jenas to set up Charlie Austin but the striker was denied by some good defending.
Hoilett then fired wide from a tight angle Austin failed to get a meaningful touch on Benoit Assou-Ekotto's cross.
The hosts were punished for their missed chances on 37 minutes as Richard Dunne conceded a corner before allowing Jamaal Lascelles to get in front of him and head in the equaliser.
QPR responded well as Hoilett got involved by firing just wide once more. It was third time lucky for the former Blackburn Rovers man as he poked past the goalkeeper after a neat one-two inside the area just before the break.