Cassel, 33, was due a $4.15 million base salary under his previous deal that would have become guaranteed after Week 1. The Bills presumably lowered Cassel's salary under his new deal.
"It's a long story," Cassel said Tuesday. "I think it's better if they explained it. I was caught a little bit off-guard myself. But like I said, at the end of the day, we were able to resolve it and I'm able to be here and now the important thing is for us to get ready to go, for me to help [starter] Tyrod [Taylor] and to get this team ready to go to play Indy."
Cassel -- who quarterbacks coach David Lee said Tuesday "almost got the job" as the starter -- said there were other teams that reached out to him after he was released but that he decided to stay in Buffalo partly because his wife is eight months pregnant.
"It was a crazy weekend, but the end result is that I am where I am supposed to be," he said.
Cassel's re-signing means that EJ Manuel -- who had appeared to win the backup job Saturday -- will be the third-string quarterback. Manuel said he didn't know that Cassel would return but that he wouldn't request a trade from the Bills.
Asked if he was disappointed with the depth chart, Manuel said, "Yeah, sure. I think it's important to continue to get better. I did what I was supposed to do, and that was have a good preseason and play well in the games. This is just what it is."
Coach Rex Ryan, who confirmed at practice that Cassel will serve as the backup to Taylor, insisted throughout the preseason that he would keep three quarterbacks on the team.
"As I've said from day one, we like all three of the guys and we never wanted to lose anybody," Ryan said. "Those three guys, they work in concert with each other. That's important. They push each other, yet they're there for each other, they watch tape together. It's really a unique deal. ...
"We liked all three, and we kept all three."
Cassel played just four possessions this preseason, completing 13 of 15 passes for 83 yards.
"I didn't have a ton of opportunities, as you know," Cassel said after the Bills' preseason win Aug. 29 over the Pittsburgh Steelers. "I had about four series the entire preseason, so you can make what you will out of it."
Cassel, who was acquired in March in a trade with the Minnesota Vikings, received the majority of first-team reps during training camp practices.
The Bills waived rookie tight end Nick O'Leary, a sixth-round pick, to clear a spot for Cassel on the 53-man roster.