Second baseman Starlin Castro, who had a .270 batting average with 22 home runs and 86 RBIs for the Marlins last season, has reached a two-year deal with the Nationals, a source confirmed to ESPN.