Long, 28, was released by the New York Jets last week after only one season of a four-year, $27.4 million deal he signed last offseason. Long would have been due a $3 million bonus last week if he had remained on the Jets' roster.
Financial terms of Long's contract with the Bills were not disclosed. Buffalo entered this offseason with about $80 million in salary-cap space and was expected to address their problematic offensive line. Starting right guard John Miller and right tackle Jordan Mills will both become unrestricted free agents in March, along with backup guard/center Ryan Groy.
Thank you Buffalo! Had an awesome visit can't wait to get to work. https://t.co/5YZwmiQM6T— Spencer Long (@slong_61) February 12, 2019
The Jets had hoped Long would stabilize the center position, a weakness since Nick Mangold stopped playing in 2016, but the plan didn't materialize. Long played the second half of the season with a tendon injury in his right (snapping) hand, which affected his performance.
The low point came in a Week 9 loss to the Miami Dolphins during which Long was off-target on at least seven shotgun snaps. Then-Jets coach Todd Bowles didn't pull him until late in the game, resulting in a torrent of criticism. Long never played center again. When he returned to the lineup two weeks later, he played left guard, where he stayed for the rest of the season.
The Redskins selected Long in the third round of the 2014 draft. He has played in 53 games during his five-year career, including 44 starts.
The Bills on Tuesday also re-signed cornerback Lafayette Pitts to a one-year deal. Pitts, who played Buffalo's second-most special teams last season, was set to become a restricted free agent in March.
ESPN's Rich Cimini contributed to this report.