Preston kept their slim play-off chances alive after coming from behind to secure a 3-1 victory at home to Leeds United thanks to three second-half goals.
Two goals in three minutes turned the match on its head, Paul Gallagher’s penalty and Sean Maguire’s header cancelling out Kemar Roofe’s opener for Leeds, before Alan Browne sealed the three points.
It ends a run of three straight defeats for Preston and keeps them within five points of the play-offs with four games remaining.
Leeds are without a win on the road since Boxing Day and slip down to 14th in the table.
Preston started brightly and created two chances inside the first five minutes. The first fell to Gallagher 12 yards out but his strike was deflected wide.
Alan Browne then surged forward from midfield and squared the ball to Tom Barkhuizen, who curled an effort over from 18 yards.
But it was Leeds who were in front after 13 minutes. Kalvin Phillips drove into the area and fired a low ball across the face of goal to Roofe, who fired into the roof of the net from six yards.
Preston striker Maguire had a couple of chances to draw his side level from corners, heading over at the far post before glancing a header wide from Billy Bodin’s whipped delivery.
Leeds were denied a second on 38 minutes by Declan Rudd as the Preston keeper kept out Caleb Ekuban’s fierce strike at his near post.
Just four minutes after the break, Preston were level from the penalty spot. Wales winger Billy Bodin burst into the area and was brought down by Vurnon Anita. Gallagher stepped up and slotted the equaliser into the bottom corner.
And Preston seized on their momentum to go in front just three minutes later. Gallagher’s delivery from the right picked out Maguire, who beat keeper Bailey Peacock-Farrell to the ball and nodded in from eight yards.
Alex Neil’s side were dominating and went in pursuit of a third as left-back Greg Cunningham struck from the edge of the area, but Peacock-Farrell pushed the effort away.
Leeds, who have now won just two of their last 18 league matches, threatened with a swift counter-attack after 77 minutes, working the ball to Pablo Hernandez down the left, but his strike was easily pushed away by Rudd.
The Preston keeper was more seriously tested a minute later by a fierce 25-yard strike from Ronaldo Vieira, but he palmed the effort away from danger.
The Lilywhites sealed the win eight minutes from time through midfielder Browne, who did brilliantly to head Callum Robinson’s cross into the far corner at the near post.
Preston North End: Rudd, Clarke, Huntington, Davies, Cunningham, Pearson, Gallagher (Harrop 67), Bodin (Horgan 85), Browne, Barkhuizen (Robinson 76), Sean Maguire. Unused substitutes: Woods, Moult, Maxwell, Earl.
Leeds United: Peacock-Farrell, Dallas, Jansson (Diaz 57), O’Connor, Anita, Ronaldo Vieira, Phillips, Grot (Alioski 68), Roofe (Samuel 68), Hernandez, Ekuban. Unused substitutes: Nicell, Lonergan, Lasogga, Pearce.
Referee: Lee Probert (Wiltshire).