USF botches late FG, No. 18 Florida gets 31-28 win in Swamp