The 27-year-old Lamb has amassed 932 points in 133 Premiership appearances with Gloucester, London Irish, Northampton Saints and Leicester. He has also featured regularly in the Heineken Cup, racking up 302 points during 42 matches in Europe's premier club competition.
He joined Leicester last summer and scored 29 points in seven appearances, including a late drop goal to safeguard victory against Montpellier at Welford Road and a last-minute match-winning conversion against the same opponents in France a week later.
Lamb said: "I've really enjoyed my time at Leicester but a lack of game-time meant that when the opportunity to join Worcester came up, I didn't want to pass it by."
"I've obviously worked with Dean Ryan before at Gloucester and, after finding out what he's building at Worcester, I was excited and wanted to be part of that journey and part of that new culture.”