Castro split the 2007 season between the Single–A West Michigan Whitecaps and High–A Lakeland Flying Tigers. In 27 games (25 starts) between the two affiliates, he accumulated an 11–6 record and 3.39 ERA with 78 strikeouts across 151+1⁄3 innings pitched.[2]
Castro spent the 2008 campaign with Lakeland and the Double–A Erie SeaWolves. In 47 combined games out of the bullpen, he compiled a 3.08 ERA with 52 strikeouts and 7 saves across 79 innings of work.[3]
Philadelphia Phillies
On June 2, 2009, Castro signed a minor league contract with the Philadelphia Phillies. In 14 games for the Double–A Reading Phillies, he recorded a 7.00 ERA with 10 strikeouts across 18 innings of work. Castro was released by the Phillies organization on July 31.[4]
Tampa Bay Rays
On August 8, 2009, Castro signed a minor league contract with the Tampa Bay Rays. He spent the remainder of the year with the High–A Charlotte Stone Crabs and Double–A Montgomery Biscuits. Castro struggled with both affiliates, recording a 6.75 ERA in two games for Montgomery, and a 22.50 ERA in four games for Charlotte.[5] He elected free agency following the season on November 9.[6]
On June 20, 2010, Castro signed with the Dorados de Chihuahua of the Mexican League. In five starts with Chihuahua, Castro pitched to a 3–1 record and 4.70 ERA with 24 strikeouts across 30+2⁄3 innings of work.[8]
Saraperos de Saltillo
On May 24, 2011, Castro signed with the Saraperos de Saltillo of the Mexican League. In 21 appearances for Saltillo, Castro logged a 5.45 ERA with 34 strikeouts and 4 saves across 39+2⁄3 innings.[9]
Fukuoka SoftBank Hawks
Castro signed with the Fukuoka SoftBank Hawks of Nippon Professional Baseball for the 2012 season. He only made three appearances for the Hawks' main club, recording a 6.00 ERA with two strikeouts in three innings of work.[10]
Los Angeles Dodgers
On December 7, 2012, Castro signed a minor league contract with the Los Angeles Dodgers. In 25 games (19 starts) for the Triple–A Albuquerque Isotopes, he registered an 8–5 record and 3.48 ERA with 91 strikeouts across 116+1⁄3 innings pitched.[11] Castro elected free agency following the season on November 4, 2013.[12]
St. Louis Cardinals
On December 11, 2013, Castro signed a one-year deal with the St. Louis Cardinals.[13] On March 23, 2014, he was removed from the 40–man roster and sent outright to the Triple–A.Memphis Redbirds.[14] Castro made 26 appearances (14 starts) for Memphis, logging a 9–6 record and 4.01 ERA with 63 strikeouts across 94+1⁄3 innings pitched.[15]
Oakland Athletics
On August 8, 2014, Castro was traded to the Oakland Athletics organization for cash considerations.[16] He spent the remainder of the year with the Triple–A Sacramento River Cats, posting a 7.78 ERA across 4 starts.
Castro began the 2015 season with the Triple-ANashville Sounds. On May 8, 2015, Castro was selected to the 40-man roster and promoted to the major leagues for the first time.[17] He would be optioned down to Nashville on June 2.[18] In 5 appearances for Oakland during his rookie campaign, Castro recorded a 2.25 ERA with 4 strikeouts across 4 innings pitched. On September 1, he was removed from the 40–man roster and sent outright to Triple–A Nashville.[19] Castro elected free agency after the season on October 5.
On November 4, 2015, Castro re–signed with Oakland on a minor league contract.[20] He made 37 appearances (10 starts) for Nashville in 2016, registering a 2–8 record and 5.15 ERA with 58 strikeouts across 92+2⁄3 innings. Castro elected free agency following the season on November 7, 2016.[21]
Sultanes de Monterrey
On March 30, 2017, Castro signed with the Sultanes de Monterrey of the Mexican League. In 22 starts for Monterey, he compiled an 11–6 record and 4.28 ERA with 96 strikeouts across 138+2⁄3 innings of work.[22] Castro was released by the Sultanes on January 12, 2018.
Bravos de Leon
On March 4, 2018, Castro signed with the Bravos de León of the Mexican Baseball League. In 7 games (5 starts) for León, Castro recorded a 4.44 ERA with 11 strikeouts across 26+1⁄3 innings pitched.[23]
Guerreros de Oaxaca
On June 27, 2018, Castro was traded to the Guerreros de Oaxaca of the Mexican League.[24] In 7 starts for Oaxaca, he struggled to a 5.66 ERA with 30 strikeouts in 35 innings.[25] Castro was released by the organization on August 9.
Toronto Maple Leafs
On June 26, 2022, after three years of inactivity, Castro signed with the Toronto Maple Leafs of the Intercounty Baseball League. In 9 starts for the club, he posted a 3–4 record and 5.98 ERA with 45 strikeouts across 52+2⁄3 innings of work.[26]
On April 21, 2024, Castro re–signed with the Maple Leafs after spending the 2023 season out of baseball.[27]