Penny, 32, is recovering from an upper-back injury that limited him to just nine starts in 2009. He went on the disabled list in late May, but at the time, it was believed to be a minor injury.
He was 3-4 with a 3.23 ERA after signing a one-year, $7.5 million contract with the St. Louis Cardinals last offseason.
The previous season, Penny started 30 games for Boston and San Francisco.
If healthy and effective, Penny could provide a boost to a Detroit rotation that also includes Justin Verlander and Max Scherzer. The Tigers have been busy this offseason as they try to improve on last year's 81-81 record. Detroit also has added catcher Victor Martinez and reliever Joaquin Benoit.
Penny began his career with Florida in 2000, when Dave Dombrowski was an executive for the Marlins. Dombrowski is now Detroit's general manager.
Penny helped the Marlins to a World Series title in 2003, then eventually ended up in Los Angeles, where he was an All-Star in 2006 and 2007, winning a career-high 16 games each of those two seasons. Penny went 16-4 with a 3.03 ERA in 2007, finishing third in voting for the National League Cy Young Award.
He has struggled to regain that form. Penny was bothered by shoulder problems in 2008, and he was ineffective in a brief stint in the AL with Boston in 2009, going 7-8 with a 5.61 ERA. The Red Sox ended up releasing him in the middle of the season, but he caught on with the Giants and pitched well for them down the stretch.
Penny won his first three decisions with the Cardinals last year, allowing only three earned runs through his first four starts. He began having problems again soon after that, and he was pulled before the fourth inning of his last start May 21 before going on the disabled list.
Buster Olney is a senior writer for ESPN The Magazine. Information from The Associated Press was used in this report.