QPR goalkeeper Pierce Charles pulled off a remarkable double save in injury time to stop West Ham moving top of the Championship and earn his side a point.
The below-par Hammers looked set to complete a comeback victory after Pablo was pulled down in the area by Amadou Mbengue.
But Charles dived low to his left to keep out Jarrod Bowen’s penalty and then reacted quickly to keep out Arne Engels’ effort from the rebound.
QPR had taken the lead from the spot in controversial fashion after Tomas Soucek was harshly adjudged to have fouled Paul Smyth. Soucek appeared to get the ball in a tackle that was outside the area.
Nicolas Madsen rolled home the penalty before Bowen equalised for West Ham in the 70th minute with their first shot on target.
The home side rallied late on to try and claim all three points but Charles’ heroics mean West Ham stay in second place, while QPR move up to fifth.
QPR had started brightly and got their reward when Soucek, playing his first game of the season for West Ham, gave the ball away to Smyth inside his own half and raced back to make what appeared to be a fair challenge but referee Ruebyn Ricardo pointed to the spot.
West Ham enjoyed more possession after going behind but rarely threatened an organised QPR team, who have conceded just four goals on the road this season and boast the second best defensive record in the division.
The visitors almost doubled their lead shortly before the break when they sprung a quick counter attack, but Rayan Kolli’s curling effort from the edge of the area towards the far corner was well saved by Mads Hermansen.
After a flat display for much of the night by West Ham, Bowen single-handedly dragged his side back into the contest, cutting inside from the right and firing home his seventh goal of the season at the near post after his initial effort had been blocked.
That equaliser lifted West Ham and Charles was forced into two fine saves from Joel Piroe and Bowen in quick succession late on.
But his finest moment came in the 91st minute, with his double save.
It maintained QPR’s unbeaten league record away from home this season, while the Irons could slip out of the automatic promotion places by the end of the weekend’s action.
West Ham stutter again in London derby
After thrashing Wrexham 6-0 in their previous home match at London Stadium, West Ham will have been full of confidence before kick-off.
But had Bowen stuck away the penalty, it might have somewhat masked what was a generally underwhelming performance.
The Hammers did pile on the pressure in the last 20 minutes but it was the opening 70 minutes of the contest which would have frustrated and concerned boss Nuno Espirito Santo and the fans, with another slow start to the match.
Some will argue that is what potential champions and promotion winners do – find a way to win when not at your best, which the Hammers so nearly did.
But the draw means it is now a third league London derby West Ham have failed to win this season after the home defeat by Charlton and draw at Millwall before the international break.
QPR continue solid start
West Ham have drawn four games this season, while QPR have had five stalematesThere is no denying that QPR were fortunate with the award of the penalty for their goal, but the Hoops proved they were not overawed by the occasion or opposition – or playing at the 62,500 capacity London Stadium for that matter.
Julien Stephan’s side more than held their own against a Hammers side who were playing Premier League football only five months ago and did well to quieten down the crowd early on with sustained possession.
QPR were solid in their shape after taking the lead and were barely threatened until Bowen’s leveller.
They could have taken all three points on another day had Kolli converted his chance just before half-time.
Not too many would have tipped QPR to be challenging near the top of the table this season, so 14 points from nine games is a solid return at this stage.