Josh Allen threw a touchdown pass with 44 seconds left before half-time, James Cook rushed 31 times for 107 yards and a late score, and the Buffalo Bills beat Minnesota 23-6 on Monday night, sending Vikings deeper into their unrelenting offensive slump.