He played in the White Sox farm system through 2005 with stops at Bristol, Kannapolis and Winston-Salem, reaching as high as Class "A".
He made his major league debut on April 6, 2006, for the Rangers against the Detroit Tigers, pitching 3.2 innings and allowing one earned run.
In 2007, Castro made 10 appearances for the Phillies, including making his first career Major League start, on August 23 against the Los Angeles Dodgers.
With the Blue Jays organization, he spent the season with the AAA Las Vegas 51s, compiling a 7–6 record and 4.49 ERA in 25 starts.
[4] However, that report was in error, as he was subsequently signed by the Los Angeles Dodgers to a minor league contract on December 19, 2012.