Castro and the Cubs have agreed to a seven-year, $60 million extension, which also includes a club option for 2020, according to ESPN.com's Enrique Rojas.
The contract reportedly covers four years of arbitration eligibility and three years of free agency. The 22-year-old was expected to qualify for salary arbitration as a "Super Two" player at the end of the year.
CSNChicago.com's David Kaplan reports that the deal is not finalized yet, but he did note that it is very close to being done.
Castro, who has occasionally landed in manager Dale Sveum's doghouse, is hitting .278 with 12 home runs, 58 RBIs and 19 stolen bases this season. The shortstop was selected to the National League All-Star team both this year and last, and finished fifth in Rookie of the Year voting in 2010.
Castro hit .307 last season and led the NL in hits.