Leonard, 25, is expected to compete with Nick Hayden for the starting job. Leonard has played in 20 games, and has four starts over two seasons with the Browns in 2007 and 2008, posting 33 tackles.
Originally signed by the San Diego Chargers as an undrafted free agent in 2007. He spent two weeks on the Chargers practice squad before being signed to the St. Louis Rams active roster on September 12, 2007.
Leonard was waived by the Rams a month later, and signed by the Browns as a free agent a day after being waived.
The Panthers will honor Leonard's current salary of $460,000.