Castro was signed by the San Diego Padres as a free agent from the Dominican Republic in 2006. He was considered quite raw when signed, but the Padres liked his arm strength and projectability. After a poor pro debut in the Arizona Rookie League in '07, he was one of the better pitchers in the Northwest League in 2008, then broke out with a strong campaign in the Midwest League in '09.[1]
Named by Baseball America the top pitching prospect and 2nd overall prospect in the Padres organization prior to the 2010 season, he spent most of the season with the San Antonio Missions of the Texas League before being promoted to Triple-A for his final 2 starts of the season.
Following the 2010 season in which he went a combined 7–7 with a 3.28 ERA across 2 minor league stops, Castro was added to the Padres' 40 man roster to protect him from the Rule 5 draft[2][3]
Castro split the 2012 season between the Triple-A Charlotte Knights and Double-A Birmingham Barons without making a major league appearance. He was assigned to Charlotte to begin the 2013 season.
On July 5, 2013, Castro made his Major League debut against the Tampa Bay Rays. He pitched three scoreless innings, giving up two hits, walked two and struck out four. Castro was outrighted off the White Sox roster on November 1, 2013.[5] He elected free agency on November 4.
Colorado Rockies
On April 25, 2014, Castro signed with the Colorado Rockies on a minor league deal.[6] He did not play in a game in 2014 due to injury. On October 15, 2014, Castro re-signed with the Rockies organization on a minor league contract.[7] Castro was assigned to the Triple-A Albuquerque Isotopes to begin the season.
After posting a 3.79 ERA and 5–5 record with 74 strikeouts in Albuquerque, on August 23, 2015, Castro was selected to the active roster.[8] On October 14, 2015, he was outrighted off of the 40-man roster.[9] He had posted a 6.11 ERA in 11 appearances for the club in 2015. He elected free agency on October 15.
On October 19, 2015, Castro again re-signed with the Rockies on a minor league contract.[10] He spent the season in Triple-A, pitching to a 3.38 ERA with 58 strikeouts in 50 appearances. Castro elected free agency following the season on November 7, 2016.[11]
Oakland Athletics
On December 1, 2016, Castro signed a minor league contract with the Oakland Athletics that included an invitation to spring training.[12] He was assigned to the Triple-A Nashville Sounds to begin the 2017 season.
Castro pitched the ninth inning of a combined no-hitter against the Omaha Storm Chasers on June 7, 2017. Starter Chris Smith pitched the first six innings and was then followed by Sean Doolittle, Tucker Healy, and Castro who each pitched one inning.[13] Castro made 26 appearances for Oakland in 2017, recording a 4.38 ERA with 35 strikeouts. He was outrighted to Triple-A on November 5, 2017, and then elected to become a free agent.[14]
On January 10, 2018, Castro re-signed with the Athletics on a minor league contract that included an invitation to Spring Training.[15] He made 6 relief appearances with Triple-A Nashville, amassing a 7.56 ERA, before being released on May 3.[16]
Sugar Land Skeeters
On June 16, 2018, Castro signed with the Sugar Land Skeeters of the Atlantic League of Professional Baseball. He was released on August 17, 2018. In 2 games 2 innings of relief he struggled immensely going 0-0 with a 9.00 ERA with 2 strikeouts.