Reading maintained their place in the Championship top-six as Lucas João broke his scoring drought to add to goals from Michael Olise and George Pușcaș to earn a vital victory over Derby County.
In a lacklustre first-half, Olise produced a moment of magic to send an effort which soared into the top corner with Reading’s first attempt on goal with the last kick of the first-half.
Pușcaș then poached from close range in the 57th minute to covert from the rebound of Yakou Méïté’s shot.
But Wayne Rooney’s team hit back to set up a tense final 10 minutes to the match as they countered from a Reading penalty appeal and Lawrence struck an unstoppable strike past Rafael from distance.
But the Royals wrapped up the game in the 84th minute as substitute Lucas Joao broke his poor form to net an important third goal to seal the points.
The Royals stay in sixth place, just a point above Bournemouth, who still have a game in hand to play.
Veljko Paunović made a big call prior to the game as top scorer Lucas João, who has suffered a dry spell in front of goal, was replaced up top by Pușcaș.
Meanwhile, Tom Holmes came in for the injured Michael Morrison and Omar Richards slotted in at left-back in place of Lewis Gibson.
Reading started with more possession as they looked to go direct with two early long balls, first from Andy Rinomhota to try and find Yakou Méïté, before Josh Laurent tried to find the darting run of Michael Olise through the middle only for Derby goalkeeper David Marshall to collect.
After a quiet opening quarter of an hour, the Royals looked to find the breakthrough when Olise took three Derby players out of the game to find a defence splitting pass to Rinomhota in the box, but his cross was turned behind for a corner.
Derby conjured up their first meaningful attack in the 20th minute and came close to taking the lead with three chances in quick succession.
Tom Lawrence dug out a cross to find Colin Kazim-Richards in the middle who struck the post with his header before Lawrence’s follow up was well saved at the near post by Rafael Cabral.
The Rams maintained their attack and again found Kazim-Richards who sat down to Reading defenders with a clever feint and tried to pick out the top left corner but Rafael made a flying save to claw the ball away.
Reading were struggling to find any impetus in attack to break down the Derby defence as neither side looked likely to find a breakthrough in the first-half.
Omar Richards surrendered possession in his own half to substitute Kornell MacDonald, but Rinomhota was there to provide defensive cover and prevent Derby from having a strike at goal.
It was a lacklustre first 45 minutes from Paunović’s side that looked headed for a stalemate. That was until Olise picked out the top corner with Reading’s first effort of the game on the stroke of half-time.
The mercurial French midfielder opened up space for a shot on the edge of the box and lashed a superb shot which flew into the top left hand corner.
The second-half started with an early shout of a Reading penalty as Méïté charged down the right and found Ovie Ejaria in the middle, he tumbled to the ground under a challenge but the referee deemed the tackle to be fair.
Derby had their own half-hearted appeals for a spot-kick which were waved away before Reading found a second goal to double their lead in the 57th minute.
Méïté drove down the right-wing, cut onto his left foot and hit a powerful strike towards goal, Marshall could only parry the ball out in front of him and Pușcaș latched onto the rebound and converted from close range to net his fourth Championship goal of the season.
Wayne Rooney’s side looked for a way back into the contest and came close when Max Bird slid an inviting ball through to Lawrence but Rafael was quick off his line to smother the ball and take it away from the Rams midfielder.
Derby kept the pressure up when Kazim-Richards fired a ball across the face of goal to try and find Jack Stretton who stretched but couldn’t get a toe to the ball.
There was another injury concern to contend with in defence as Omar Richards had to be replaced by Lewis Gibson.
Rafael was kept on his toes again and made another stunning stop to fly to his left to get a hand to Bird’s fierce drive from 25 yards out that looked destined for the top corner.
The Royals had the chance to wrap up the three points when Olise slid the ball through for Méïté who looked to plant the ball into the bottom corner but was denied by Marshall.
There was a tense final 10 minutes when Derby grabbed a goal back just moments after Reading were denied another shout for a penalty.
Méïté fell down in the box but referee Jon Moss waved play on, and Derby capitlised as they transitioned into attack and Lawrence blasted a shot past Rafael to get the Rams back in the game.
Paunović made two changes as João and Alfa Semedo replaced Olise and Pușcaș.
The substitution paid dividends as João latched onto Holmes’ flick on and slotted the ball in to break his frustrating spell in front of goal and earn three vital points.
With just six games to go, Reading face a difficult test on Friday night when they face automatic promotion chasers Watford who are currently second in the table with a nine point lead over third placed Swansea City.
Reading: Rafael, Richards, Holmes, Moore (c), Yiadom, Rinomhota, Laurent, Olise, Ejaria, Méïté, Pușcaș
Subs: João, Southwood, Esteves, Dorsett, Gibson, Tetek, Semedo, Aluko, Baldock
Derby County: Marshall, Wisdom, Forsyth, Shinnie, Bird, Lawrence, Byrne, Kazim-Richards, Mengi, Sibley, Knight
Subs: Aoos, Jozwiak, Roberts, Buchanan, Bateman, Baningme, McDonald, Stretton, Watson
Goals: Olise 45+2′, Pușcaș 57′, Lawrence 79′, Lucas João 84′