The Bills announced Wednesday that they traded two undisclosed draft picks to the Vikings for Cassel.
Cassel started nine games in two seasons for the Vikings. He passed for 14 touchdowns with 13 interceptions.
Cassel never started a game at USC, but the New England Patriots selected him in the seventh round of the 2005 draft. He started 15 games in 2008 after Tom Brady was sidelined because of an injury.
Cassel signed with the Kansas City Chiefs as a free agent in 2009 and he started for four seasons, making the Pro Bowl in 2010.
For his NFL career he has passed for 96 touchdowns with 70 interceptions.
Former USC receiver