Nelson, who played three seasons for Buffalo, is coming off a torn anterior cruciate ligament suffered in last season's opener. The 6-foot-5, 214-pounder started 17 games for the Bills, who signed him as an undrafted free agent in 2010.
Nelson had 94 catches for 1,042 yards and eight touchdowns with the Bills. In 2011, he was second on the club in catches (61) and receiving yards (658). He also had five TDs.
Browns coach Rob Chudzinski said Nelson "possesses very good size and hands, and has a good feel for the game. He showed promise with Buffalo two years ago before missing most of last season with an injury, and we feel as though he will be a good addition to our group of wide receivers."