Yakou Meite's third goal in as many games earned a point for Reading, who came from behind to claim a 1-1 draw at Madejski Stadium.
Lyndon Dykes snatched a lead for QPR just moments before the interval, very much against the run of play - but Meite had Reading level before the hour-mark. The game opened up as the hosts pushed to complete the turnaround, occasionally gifting space for QPR to counter into... but that was the end of the goalscoring, as the teams shared the spoils.
There were three changes to the starting line-up, two of which were enforced; Tom McIntyre and Andy Yiadom missed out on the squad completely, while Alfa Semedo took a seat on the bench. That meant a return to the XI for Ovie Ejaria, Andy Rinomhota and Lewis Gibson.
In midweek, the Royals were punished for a slow start by conceding early in Birmingham. This time around, the team began with purpose and fashioned a chance within the first two minutes, as Omar Richards teed up the returning Andy Rinomhota - a drive from the edge of the area deflected marginally wide.
QPR tried to take the pep out of the game after a lively start from the hosts, but Reading kept up the tempo. Meite was onside as Olise's ball was raked into the path of his out-to-in run off the right flank; he slipped initially but still managed to register a shot, blocked. Then Olise tried to pull the strings again just seconds later, flighting one over the defence into Joao's feet. He dummied to buy a yard, but still a recovery tackle came in.
Rangers, settling into the game after an early flurry of Royals opportunities, could have taken the lead with their first opportunity. A short-corner routine saw Charlie Austin teed up outside the area, but he dragged his effort well wide.
On his return to the starting XI, Ejaria was playing purposefully in and out of possession. He snapped into a tackle outside the QPR box, winning the ball high upfield and allowing Omar Richards to send in an instantaneous cross towards Joao... agonisingly, the slightest of touches by the outstretched toe of Jordy de Wijs took it out of reach from the forward, who would have had a gilt-edged chance.
Ejaria again made things happen with a mazy run down the left - refusing to surrender possession when tackled, he found Olise arriving unmarked on the penalty spot, but the teenager leant back on his shot and cleared the bar with a presentable chance.
So it was a sucker punch when that opening goal came, 30 seconds before the first 45 minutes was up. After QPR skipper Lee Wallace picked up the ball on the left, he played infield to Ilias Chair and ran in behind to receive the return ball. The full-back slid a low cross into the six-yard box, where Dykes was arriving to apply the finishing touch and send the Royals into the half-time break with a cruel deficit.
Half-time: Reading 0-1 QPR
Gibson was first to fire an attempt at goal, looking to get Reading level. Joining in with an early attack, the centre-half pinged a 25-yard shot which was nicked away for a corner.
Ten minutes after the break, Reading had the ball in the net - only for the assistant's flag to cut short the celebrations. It was another marvellous run by Ejaria, dancing past the Rangers defence, and eventually picking out Meite. Seny Dieng kept out the Ivorian's effort, before skipper Liam Moore turned in - up went a very questionable flag.
But the goal came just a minute later, no less than was deserved. Rinomhota battled for the ball in his own half, before driving on and raking a ball up to Meite - a great touch on his chest, chopping past former Royal Rob Dickie, and slotting past the goalkeeper... all square!
Reading could - and probably should - have been ahead almost immediately. Ejaria stabbed a bisecting ball through the QPR rear-guard for Joao to race on to... he touched the ball around the goalkeeper, but snatched at his left-footed shot with the goal gaping, missing wide of the near post.
Academy graduate full-back Tom Holmes saw his wait for his maiden goal go on, going close again. Some burly hold-up play from Joao and a lay-off by Meite presented the opportunity, but the effort from wide on the right just faded off target and flashed wide on the far side.
The tempo remained high - Reading giving everything to try to grab the win. That occasionally left space for Rangers to counter into, and Chris Willock could have re-established a lead for the visitors but directed an effort wide.
And then Stefan Johansen was denied by a brilliant stop from Rafael. A lolloping run down the left by Wallace allowed him to find the late arrival in the area from his midfield teammate, but the Brazilian spread himself brilliantly to keep the ball at bay.
Alfa Semedo and George Puscas were introduced for the final 10 minutes, and an elbow complaint from Holmes meant Tomas Esteves replaced him soon after. But the momentum had swung back the visitors' way and waves of attack were having to be dealt with by the defence.
Royals rode the pressure and tried to fashion some late opportunities... but the visitors' defence gave nothing away. Ultimately the clock ran out on the game, and the Royals had to settle for a point.
Full-time: Reading 1-1 QPR
Reading: Rafael, Holmes (Esteves 83), Richards, Moore (c), Gibson, Laurent, Rinomhota, Ejaria, Olise (Semedo 79), Meite, Joao (Puscas 79).
Unused subs: Southwood, Tetek, Aluko, Onen, Camara, Baldock.
Scorer: Meite (57).
Queens Park Rangers: Dieng, Wallace (c), Dickie, De Wijs (Cameron 49), Barbet, Dykes, Chair (Ball 65 (Kane 90+4)), Johansen, Field, Kakay, Austin (Willock 65).
Unused subs: Lumley, Bonne, Thomas, Hamalainen, Adomah.
Scorer: Dykes (45).
This match report was brought to you by WHATJOBS. Learn more at www.WHATJOBS.com