A late goal from Daniel Johnson gave Preston North End a deserved victory over Reading at the Madejski Stadium.
Johnson struck in the 91st minute, tucking a low shot past the Royals' outstanding keeper Ali Al Habsi.
Jermaine Beckford had given North End a 55th minute lead, latching on to Johnson's through ball to lift a shot into the net.
It was an advantage they deserved after dominating the first half and carving out chance after chance.
Reading looked to have denied them the three points in the 86th minute though, Stephen Quinn finding the bottom corner with a low shot from the edge of the box.
A draw would have been scant reward for Simon Grayson's men and thankfully there was time for Johnson to pop up and net his ninth goal of the season.
This was PNE's first league win at the Madejski Stadium, their only other success having come in an FA Cup replay in January 2004.
Skipper Tom Clarke had missed out with an injury picked up in training on Friday, while Ben Pearson dropped down to the bench after coming off injured in last week's defeat to Burnley.
Paul Huntington had come into a three-man defence in Clarke's place, with Johnson replacing Pearson in midfield.
Chris Kirkland again stood in for first-choice keeper Anders Lindegaard who has a shoulder injury.
Aside from the first 10 minutes, North End bossed the first half.
They had some defending to do early on, a shot from Latvian striker Deniss Rakels hitting Bailey Wright and looping behind for a corner.
Jake Cooper had the ball in the PNE net from a free-kick but the assistant's flag went up for offside against the Royals centre-half.
North End started to get into their stride and it was pretty much one-way traffic for the remainder of the half.
Twice in the space of 20 seconds they worked Al Habis, Paul Gallagher getting to the byline and driving in a cross which the keeper pushed out.
The rebound was played out to Calum Woods who cut inside from the right-wing and saw his low shot saved by Al Habsi at the foot of the near post.
Gallagher's curling free-kick into the box was met by Joe Garner but his flicked header was too close to the keeper.
A strong run by Johnson took him into the box, his low cross pulled back into the path of Beckford whose shot caught a deflection and went wide.
DJ tried a shot of his own soon after, the left-foot effort from 25 yards bouncing just the wrong side of the post.
Preston maintained their pressure with Wright's header from a Gallagher corner clipping a Royals defender before being hacked clear.
The best chance of the lot fell to Beckford in the 28th minute, the home defence opening up to allow him to run clear from the half-way line.
He had only Al Habsi to beat as he got into the box but his attempt to dink the ball over the keeper lacked sufficient height and Al Habsi reached a glove up to save.
Woods jinked his way across the box, going past two defenders, only to drag a shot inches wide.
More pressure came as half-time approached, Garner volleying high over the target from a narrow angle after collecting Beckford's flick.
Then Johnson spun on the edge of the box and got off a low shot which Al Habsi dived to glove behind at full stretch.
Four minutes into the second half, Rakels found space on the left side of PNE's box, his low shot hitting Kirkland's legs at the near post.
North End responded with their chance after the interval, Alan Browne's ball into the box finding Beckford.
The striker controlled it on his chest and saw a shot drop just over the bar, Beckford claiming that the last touch had come off a defender.
He was not to be denied in the 56th minute though, the Reading defence appearing to freeze as Johnson knocked a ball over the top.
Beckford stole in behind and lifted a shot past Al Habsi as the keeper raced off his line.
Reading had a spell of pressure after the goal, with North End on the back foot for a few minutes.
Substitute Josh Barrett fired wide from inside the box after Paul McShane had headed the ball into his path.
PNE lost the services of Greg Cunningham after 66 minutes, the defender limping off after landing awkwardly after a header in the centre circle.
He was replaced by Marnick Vermijl, the Belgian going to right wing-back with Woods switching into the back three.
In the 71st minute, Gallagher burst down the left side of the box and hit a low shot which Al Habsi dived to get a hand to - the loose ball scooped out for a corner.
At the other end, Barrett got away from the PNE defence and into the box, his low shot flashing wide of the far stick.
Beckford might have done better when Johnson's pass found him on the edge of the box in plenty of space.
He hesitated before poking an effort goalwards, a shot which Al Habsi still had to dive to reach and push away.
Yann Kermorgant curled a shot inches wide as the hosts pressed for an equaliser, a warning which perhaps was not heeded by North End.
Less than three minutes later, Kermorgant knocked the ball into the path of Quinn on the edge of the box, his first-time shot leaving Kirkland rooted to the spot as it travelled into the far bottom corner.
If he should have done better with the goal, Kirkland atoned for it soon after, getting down well at the near post to beat away Barrettt's low shot
North End were not finished and with the clock having just ticked beyond the 90th minute mark, they struck a deserved winner.
They caught Reading on the break, Gallagher's pass finding Adam Reach who took the ball down the left before slipping a pass inside to Johnson.
DJ calmly took a couple of touches before steering a low left-foot shot past Al Habsi.
Reading: Al-Habsi, McCleary Cooper, McShane, Gunter, Williams, Evans (Barrett 46), Norwood, Quinn, Kermorgant, Rakels. Subs (not used): Taylor, Vydra, Ferdinand, Cox, Watson, Bond.
PNE: Kirkland, Wright, Huntington, Cunningham (Vermijl 66), Woods, Browne, Gallagher, Johnson, Reach, Garner (Doyle 84), Beckford (Hugill 84). Subs (not used): Pearson, Kilkenny, Robinson, Hudson.
Referee: Darren Deadman (Cambridgeshire)
Attendance: 15,834 (778 PNE)