The home side made the early running, with Steve Bywater having to be alert to make saves from March Bircham via a deflection, and Martin Rowlands, but Marlon Harewood hit back with a 25 yard drive that flashed wide of Chris Day's left hand post.
Nigel Reo-Coker then started a move just outside his own box, but when Marlon Harewood unselfishly returned the ball to him on the attack, he shot wide of the mark.
Midway through the first half, however, QPR took the lead when the ball was played inside Hayden Mullins by Kevin Gallen; Hayden slipped, leaving Matthew Rose the opportunity to dispatch a low shot into the far bottom corner.
Ironically, Paul Furlong was then booked for a foul on Sergei Rebrov in the build-up to the goal - for which the referee had waved on for advantage.
Soon after the break, Martin Rowlands was booked for a late challenge on Reo-Coker - who, judging by his reaction, took great exception to the foul on him.
Marc Bircham became the second Rangers player to be booked for a foul on Rebrov; from the subsequent free kick, Marlon Harewood became the first player to get a meaningful shot on target but Day was equal to it.
Shortly after, a clever Rebrov free kick hit the side netting.
Chris Cohen then replaced Luke Chadwick, with Rebrov moving to a more central role; soon after, he was booked for a foul on Marcus Bignot.
With the minutes ticking away, and no signs of a breakthrough, Don Hutchison replaced Bobby Zamora for his first appearance of the season.
Immediately afterwards, Rebrov curled a free kick round the wall but it did not deceive Day, who was once more able to save.
In injury time, the final chance of the game went with Marlon Harewood volleying a Hutchison cross over the bar; it was not to be West Ham's day.
Steve Lomas, restored to the starting line-up, wore the captain's arm band once more, while Hayden Mullins played at right back with Tomas Repka forming a central defensive partnership alongside the fit-again Anton Ferdinand.
Sergei Rebrov started on the left in the absence of Matthew Etherington while Bobby Zamora played up front with Teddy Sheringham, who had a thigh strain, missing.
Don Hutchison, back after injury, was on the bench for the first time this season but Carl Fletcher was missing through illness.
Malky Mackay, also missing through injury, resumes full training at the start of the week.
TEAM: Bywater, Repka, Harewood, Lomas, Ferdinand, Rebrov, Mullins, Reo-Coker, Zamora [Hutchison], Chadwick [Cohen], Powell.
Subs unused: Walker, Brevett, McClenahan.
Attendance: 18,363