The Buffalo Bills snapped a three-game losing streak to keep their playoff hopes alive with a 16-12 win over the Cincinnati Bengals, although they remain behind the Miami Dolphins in the AFC East after they beat the St Louis Rams 14-10.