Paul Huntington and Josh Harrop put the Lilywhites ahead before Josh Magennis’s penalty handed the Tigers a route back before the break.
Jarrod Bowen scored at the death to take the tie to a shoot-out.
Tom Eaves saw his spot-kick saved by Preston goalkeeper Connor Ripley and Alan Browne scored the winning penalty for the home side.
Preston took the lead in the 20th minute when Huntington nodded home Harrop’s well-delivered free-kick.
Matt Ingram later diverted Tom Barkhuizen’s attempt into Harrop’s path and the former Manchester United man tucked in the rebound. The Tigers halved the deficit after 34 minutes when Magennis fired in from the spot after Leonardo Da Silva Lopes was brought down in the box by Browne.
Barkhuizen stung Ingram’s palms with a fierce effort, while Andre Green forced the Hull keeper into a diving save in first-half stoppage-time.
Kevin Stewart nearly scored a spectacular equaliser with a long-range effort on the hour-mark which sailed inches over.
Jon Toral turned in the box and Ripley preserved his side’s lead, while Harrop nearly added his second with less than 15 minutes left after darting into the box but dragged his effort just wide.
Ripley’s sublime double stop moments later denied Toral and Nouha Dicko after great work from Hull’s Bowen, who himself took the tie to penalties after dinking over Ripley from close range deep into stoppage time.
Hull manager Grant McCann chose to take the positives despite the difficult end to the contest.
“I thought the whole team’s performance was excellent in the second half,” he said.
“I thought they all did their jobs better in the second half and that in turn brought us the two goals.
“We wanted to have a cup run but what really pleased me was the second-half performance.
“I thought we showed everything that we’ve shown in most of the games this season, and I thought we showed that much more in the second half.”
Preston North End: Ripley, Browne, Storey, Huntington, Ginnelly (Rafferty 79), Bayliss, Ledson, Potts, Harrop, Green (Bodin 69), Barkhuizen (Stockley 46). Unused substitutes: Crowe, Baxter, O’Reilly, Walker.
Hull City: Ingram, McKenzie, Pennington, Tafazolli, Fleming (Stewart 37), Toral, Batty (Eaves 78), Da Silva Lopes, Bowler (Bowen 62), Dicko, Magennis. Unused substitutes: Long, De Wijs, Burke, Lewis-Potter.
Referee: D Webb (County Durham).