When you are down, with no timeouts left and are in position to at least tie the game, you have to play for the tie first, the lead second.
That means planning for the worst (a sack or an INT) and hoping for the best. They called a pass play on first down, then a run. They were in their goal line set for the run which means they didn't have the personel on the field to spread it out and pass it on 3rd down...their pass options would have been limited. Thus, the safe play was to spike it and take the tie.
The only thing to complain about on that drive was the TO Drew used. Apparently the refs didn't reset the playclock (at least according to AVP on the radio). Regardless that TO cost the Bills the ability to run a 3rd down play.
The spike was the right call given the situation.