The Baggies picked up the three points in an end-to-end affair as they continue their early season form, but the visitors remain winless and in the relegation zone
The hosts burst into a two-goal lead through first James Morrison and then Zoltan Gera, but QPR came back into it thanks to a great Adel Taarabt goal, and although the visitors had a lot of possession, Youssouf Mulumbu secured the win late on despite Esteban Granero's even later strike.
West Brom made just two changes from the side that managed a draw against Aston Villa last weekend, with the injured Chris Brunt being replaced by Peter Odemwingie, while in defence Gabriel Tamas came in for Billy Jones.
QPR suffered a defeat at home to West Ham last time out and reacted by making three changes. At the back, Jose Bosingwa was restored to the starting line-up in favour of Nedum Onuoha, Anton Ferdinand returned to replace Alejandro Faurlin, and in attack Taarabt took the place of Djibril Cisse.
The visitors looked confident early on, but they soon found themselves behind. Shane Long effortlessly breezed past Clint Hill down the Baggies' right before crossing, and there was Morrison to head past a helpless Julio Cesar.
The duo combined again minutes later, this time Morrison crossed for Long, but after taking a touch the Irishman smashed his effort over from seven yards out.
West Brom were dominating the first half and were two up before long, with Morrison involved yet again. The midfielder played in a low ball from the right, and although Anton Ferdinand got a slight touch on the ball, Gera arrived at the perfect time to slot the ball into the bottom corner.
However, the visitors clawed their way back into the contest thanks to a sumptuous goal from Taarabt as the volatile attacker brought down Granero's chipped pass before lashing a volley past Ben Foster, and although Morrison had another chance before half-time, the hosts went into the break in the lead.
A pattern was established for the second period as Rangers continuously booted the ball towards Bobby Zamora, and although the England international was dominating aerially, they were not creating chances.
Granero should have done a lot better with 25 minutes to go, but after a Zamora knock-down the Spaniard fired well over from just inside the penalty area.
Morrison was quiet after the break, but late on he went very close as his long-range effort whistled just wide of the top corner, but the hosts secured the points late on through Mulumbu.
Gonzalo Jara got to the byline before cutting a ball back to the Congolese midfielder and he stroked the ball into the bottom far corner with ease.
Granero got one back in injury time with a cool finish, but it was not enough for the visitors.