Fryatt, a £1.2million signing from Leicester, stepped off the substitutes' bench on the hour mark and rifled home a trademark finish from 12 yards nine minutes later to give the visitors a 2-1 lead.
Hull, now unbeaten in eight away league matches, had opened the scoring through Jimmy Bullard's 21st-minute penalty after Cameron Stewart had been brought down.
Pompey deservedly drew level early in the second half through Liam Lawrence, who picked himself up to convert from the spot after being tripped by Hull defender Anthony Gerrard.
Hull, forced to defend doggedly for long periods, broke away again in the 69th minute and Fryatt put them back in front before they grabbed a two-goal cushion through Nick Barmby in the 72nd minute.
Greg Halford headed home with 14 minutes left, but Steve Cotterill's side could not force what would have been a deserved equaliser.