Jackson ran for 133 yards, taking over the Bills' rushing game after C.J. Spiller was removed from the contest with a hamstring injury.
Ryan Fitzpatrick threw for 146 yards and a touchdown on 12-of-24 passing for the Bills (1-8), whose 0-8 start was their worst since an 0-11 beginning to the 1984 season.
The Lions roared back with 14 seconds remaining in the game, pulling to within 14-12 on Calvin Johnson's 20-yard touchdown reception from Shaun Hill. But the Lions couldn't convert the ensuing 2-point conversion try and instead logged their NFL-record 25th straight road loss.
Hill passed for 323 yards on 29-of-50 attempts with a touchdown and an interception for Detroit (2-7).