West Brom increased the pressure on QPR boss Mark Hughes as a fifth defeat in seven games left the west London team anchored at the bottom of the Premier League without a win.
Rangers have taken only two points out of a possible 21 and they were always facing an uphill task after early goals from James Morrison and Zoltan Gera.
They showed signs of improvement after Adel Taarabt had reduced the arrears. Youssouf Mulumbu made it 3-1 before an injury-time effort from Esteban Granero again cut the deficit.
QPR defender Anton Ferdinand was booed during the first half by some Albion fans in his first appearance since the full report from the Football Association into the John Terry case was published.
Albion registered their fourth home win, their best start to a top flight season in front of their own fans since 1919.
Steve Clarke's side should have wrapped up the game in the opening half hour and could have doubled their two-goal advantage against a QPR side carved open almost at will during that spell.
Hughes' men struggled to deal with the creativity of Morrison and the pace of Shane Long with Ferdinand and Clint Hill in particular looking uncertain at the back.
But Taarabt, in his first start since the opening day of the season, dragged them back into the game and he demanded close attention from the Baggies back four.
Albion's acting skipper Jonas Olsson received a standing ovation from the home fans before kick-off after signing a new four-year contract - and his side needed only four minutes to go ahead.
Baggies leading scorer Shane Long was too quick for Hill before delivering an inviting right-wing cross. Morrison timed his run perfectly to get behind Ferdinand and direct his header back across Julio Cesar into the corner of the net.
Albion looked sharp going forward and Long missed a golden chance to double their lead in a lightning counter-attack.
Peter Odemwingie picked out the run of Morrison and his cross was perfectly weighted to find Long but from six yards out he fired over the bar.
QPR had no answer to West Brom's first touch football and a shocking error by Ferdinand gifted them their second goal after 22 minutes.
Once again Morrison supplied the ball into the danger area and Ferdinand's attempted clearance fell straight to Zoltan Gera, who made no mistake from 10 yards out.
Albion right-back Gabriel Tamas was booked for bringing down Taarabt before the QPR midfielder gave his side a lifeline with a stunning finish after 35 minutes.
Esteban Granero played the ball into the path of Taarabt on the edge of the box and he brought it under control before volleying past Ben Foster.
But Albion still threatened danger everytime they ventured forward and it needed a fine save from Cesar to deny Gera a second goal.
Peter Odemwingie's defence-splitting pass found the Hungarian international free inside the box but Cesar managed to deflect his shot past the post.
QPR skipper Park Ji-sung was booked in first half injury-time for a lunge at Gera.
Both sides made a half-time switch with Tamas and Hill replaced by Gonzalo Jara Reyes and Armand Traore respectively.
The visitors showed attacking intent at the start of the second period and Foster held a low drive from the impressive Taarabt.
Morrison had a shot deflected wide but Albion were guilty of sloppy play.
It prompted Clarke to make a double change with strikers Romelu Lukaku and Markus Rosenberg replacing Long and Odemwingie.
Granero had the chance to level matters but sliced his shot wide after more good work by Taarabt.
But Morrison almost capped another top performance with a second goal as his 35-yard drive flashed inches wide.
With five minutes left Mulumbu made it 3-1 after exchanging passes with Jara Reyes - but QPR showed plenty of spirit and Granero reduced the gap again in injury-time with a cool finish.