The Toronto Blue Jays and Colorado Rockies came out of nowhere to perhaps make the most surprising trade that will occur before the non-waiver deadline on Friday. Shortstop Troy Tulowitzki is going to Toronto in the deal, according to FOX Sports' Ken Rosenthal.

In exchange for the All-Star shortstop as well as reliever LaTroy Hawkins, the Rockies received shortstop Jose Reyes and prospects. Right-handed pitcher Miguel Castro is one of those minor leaguers, reports Jon Heyman of CBS Sports, which was initially speculated by FOX Sports' Jon Morosi. Right-handed pitcher Jeff Hoffman is another one of those top prospects, says Bob Elliott of the Toronto Sun.

Castro was the Blue Jays' No. 4 overall prospect and Hoffman was No. 3, according to Baseball America. The 20-year-old Castro appeared in 13 games this season in April and May.

Heyman also noted this morning that the Jays will send prospect right-hander Jesus Tinoco to Colorado.

The two sides pretty much swapped the salaries of Tulowitzki ($20 million per season) and Reyes ($22 million per season) through 2017. After that year, Reyes becomes a free agent ($4 million buyout or $22 million team option) and Tulowitzki will still earn $58 million through 2020 (or $69 million through 2021 if the Jays pick up his $15 million team option).

And there are a couple more things to note about Tulowitzki's contract:

  

Tulo will add even more fire-power to the MLB's top offense. The 30-year-old is batting .300/.348/.471 with 46 runs scored, 12 home runs and 53 RBIs in 87 games this season. Colorado will likely get solid production from Reyes, who is hitting .285/.322/.385 with 36 runs scored, 4 home runs, 34 RBIs and 16 stolen bases in 69 games.

Both of these shortstops have had trouble staying on the field in recent seasons due to various injuries. However, even though Tulowitzki's health has been a significant issue, trade rumors have engulfed the shortstop since last year. The New York Mets were at the forefront of those rumors and it was said over the weekend they inquired about Tulowitzki, but didn't believe the Rockies were interested in trading him.

In Tuesday's deal, the Rockies acquired pitching prospects to help bolster their farm system and hopefully improve their struggling pitching staff at the MLB level (last in league with 4.94 ERA).

As for the Blue Jays, they're probably not done yet. Their biggest need leading up to the deadline is still starting pitching, so it's possible this move was executed to put themselves in a position to make their next one.

Check out the Baseball Tonight crew talk about the trade between the Rockies and Jays.

UPDATE: The deal is now official, according to the Blue Jays' Twitter account.