The 31-year old Wales international posted on Twitter that he had officially signed with the Canadian club ahead of the 2013 season which kicks off this weekend.
“Breaking news:I have now signed and officially a @Torontofc Player,” he posted.
Before later adding: “Season starts this Saturday.Now on the plane flying to Vancouver for the opening game.”
Further tweets read: “I want to thank my home town club Cardiff City,I had the best fun playing in front of those Fans from the age of 16 until now.
“I leave with a heavy heart from Cardiff city.”
Earnshaw has endured a tough spell with Cardiff recently after arriving from Nottingham Forest in 2011. He spent time on loan with Israeli club Maccabi Tel Aviv but is now on his way to North America to start the next chapter of his career under new head coach Ryan Nelsen.