The Welsh international took to social media to announce that he was joining the Canadian MLS side.
"Breaking news:I have now signed and officially a @Torontofc Player," the 31-year-old tweeted on Thursday afternoon. "Season starts this Saturday. Now on the plane flying to Vancouver for the opening game."
TFC president and general manager Kevin Payne had told reporters earlier this week that Earnshaw would be amongst a host of trialists brought in by the club, and the Welshman was in training with the Reds on Wednesday.
Over the course of his career, Earnshaw, a striker, has played for Cardiff City, Norwich, and West Brom. He has amassed 58 caps for Wales, scoring 16 times.
Toronto opens its 2013 season on Saturday against the Vancouver Whitecaps. A handful of new acquisitions are expected to be announced before then.