Castro, who earned the Astros' regular catching job last year as a rookie, was injured while trying to avoid a tag at first base during a pre-season game against Detroit on Wednesday.
He had surgery on Friday to repair a large tear of the medial meniscus and a reconstruction of the anterior cruciate ligament. The team, which opens the regular season on April 1, said he was expected to miss six months.
"It's unfortunate for Jason," Astros manager Brad Mills said in a statement.
"He had worked so hard in the offseason. That being said, he's got a bright future. This injury should not get in the way of that. He has a chance to be an outstanding player."
The 23-year-old Castro had two home runs, eight RBI and a .205 batting average last season.
(Reporting by Frank Pingue in Toronto; Editing by Julian Linden)