Denis Odoi scored a 96th-minute equaliser after a dreadful mistake from Preston goalkeeper Chris Maxwell as Fulham claimed a 2-2 draw at Craven Cottage.
Maxwell dropped a long hopeful punt from Fulham's Tim Ream 16 yards out and Odoi poked the loose ball into the empty net seconds away from the end of added time.
In-form Preston still extended their unbeaten run to nine games, but missed the chance to move into the automatic promotion positions ahead of Wolves' match against Aston Villa. It was Fulham's fourth draw in six home games, but they deserved a point for a spirited fight back from two goals down.
Jordan Hugill gave Preston the lead with his fourth league goal of the season after 18 minutes and Sean Maguire deflected in Tom Barkhuizen's shot to make it 2-0 seven minutes later. Oliver Norwood pulled one back from the penalty spot in the 74th minute but it looked as though they would not find a second until Maxwell's error.
It was an entertaining match with both sides looking to attack, and after 16 minutes. Fulham's Ryan Sessegnon skipped past a challenge on the left and fired over a hard low cross.
Maxwell could only push the ball out to Norwood but redeemed himself with a one-handed save and when the ball rebounded to Floyd Ayite, the Fulham man volleyed high over the crossbar.
Two minutes later, Preston were ahead. Fulham appealed in vain for offside as the ball reached Maguire on the left, and his low cross was swept in by Hugill.
It could have been two when Johnson's diagonal pass sent Alan Browne through, but Button blocked his low shot at the expense of a corner.
Fulham brought on captain Tom Cairney as a half-time substitute as they looked for a reply and his passing immediately made Fulham more of a threat. Rui Fonte's long-range effort whistled just over and Kevin McDonald's shot from just outside the penalty area hit the foot of Maxwell's left-hand post.
Preston could have made the game safe if not for Josh Harrop's heavy touch when Johnson sent him clear of defenders. Then Harrop, set up by Josh Earl, fired straight at Button.
They were costly failures as Fulham halved the arrears after 72 minutes. Preston defender Calum Woods tripped Fonte 10 yards out and Norwood coolly converted the penalty.
It seemed as if his miss from close range two minutes from normal time would be the closest the Cottagers would come until Maxwell's error.