The teams announced the deal shortly after Cleveland lost its season opener -- and first game as the Guardians -- 3-1 at Kansas City.
Zimmer has been a tantalizing talent since coming up with the Guardians in 2017. However, the rangy, 6-foot-5 Zimmer hasn't been able to stay healthy since showing so much promise early in his career.
The 29-year-old missed most of three seasons with an assortment of injuries and surgeries before coming back in 2021 and playing in 99 games -- his most since '17. Zimmer batted .237 with eight homers and 35 RBI last season.
He was one several players who competed for one of the Guardians' open corner outfield positions, but he was beaten out by rookie Steven Kwan. Cleveland decided to move Zimmer for pitching depth.
Zimmer had spent his entire career with Cleveland, which selected him with the No. 21 overall pick in the 2014 draft.
The 26-year-old Castro has been with Toronto and Detroit. He split last season between Triple-A Buffalo and Toronto, going 1-2 with a 4.74 ERA and one save in 25 games.
The Venezuelan, who has one minor league option remaining, began his career in the Tigers' system in 2012. He opened the season on Buffalo's Triple-A roster and will be added to Cleveland's active roster Saturday in Kansas City.