The 38-year-old Thomas led the Oakland Athletics with 39 home runs and 114 RBI last season while hitting .270 as he rebounded from several injury-plagued seasons with his former team, the Chicago White Sox.
He would be the team's full-time designated hitter next season, according to Toronto General Manager J.P. Ricciardi, who was surprised that the veteran was available.
"I really didn't think Frank was going to leave Oakland," Ricciardi said.
Trachsel joins Orioles
"He came into the mix late in the process and once we heard he would be interested in playing here, the rest came together pretty quickly."
Thomas, who made just $500,000 in salary last season but earned about $2.6 million in bonuses, commanded a much higher price this time around.
He will receive a $9.12 million signing bonus and a $1 million salary next year, along with $8 million in salary for 2008. There is also an option for 2009.
"It's a bit of a gamble because of his past injuries and age, but we've had him checked out and we believe he'll be a tremendous addition to our line-up," Ricciardi said.
Thomas missed most of the 2004 and 2005 seasons with injuries. In 17 major league seasons, 16 of them with the White Sox, he has a career average of .305 with 487 home runs and 1,579 RBI.
Ricciardi also indicated the Blue Jays would explore adding some pitching help, an area he admits the team needs more than hitting at the moment.
"We've already found the price pretty high for free agent pitchers, but we'll keep exploring all options to make our ball club better," Ricciardi said.
Brewers sign Suppan in record deal
McCarthy joins White Sox