The Bills scored the game's first 16 points before the Lions got their offense in gear. Drew Stanton threw two touchdown passes in the second half for Detroit.
After Pratt's interception return gave the Lions a 28-16 lead with 6:27 to go, Buffalo's Levi Brown guided the Bills 71 yards in 13 plays. Chad Simpson scored on a 1-yard run with 16 seconds remaining.
Buffalo also had an interception return for a score, a 41-yarder by Drayton Florence in the first minute of the game. Rian Lindell added three field goals for the Bills.
Detroit finished the pre-season at 3-1 and Buffalo broke even in its four games. The Lions open the regular season at Chicago and Buffalo will start out at home against Miami.
Ray Liotta sues skin care company over use of likeness
Boston schools pull out free condoms over wrapping complaints