The deal is worth $19 million, according to the Detroit Free Press, which first reported the news.
Sanchez is the second starting pitcher signed by the Nationals this offseason, joining left-hander Patrick Corbin, who signed a six-year, $140 million contract earlier this month. Sanchez is also the second former Braves player to sign with Washington in the offseason, joining catcher Kurt Suzuki.
Sanchez, 34, was 7-6 with a 2.83 ERA in 24 starts for the Braves last season and got the nod to start Game 2 of the National League Division Series against the Los Angeles Dodgers. Atlanta signed the veteran right-hander to a minor league contract in spring training to secure another experienced candidate for their rotation. It was a move that came after the Twins unconditionally released Sanchez after a three-week stint with the club.
He strung together a stretch during the middle of the season of tossing at least six innings in six consecutive starts on his way to posting a career-low WHIP of 1.08 for a full season. His resurgence represented a late-career signal of his getting back on track as a reliable starting pitcher after some recent rough seasons with the Detroit Tigers.
After leading the American League with a 2.57 ERA in 2013, Sanchez struggled through the next three seasons for the Tigers while dealing with injuries and being demoted to stints in the bullpen.
The Venezuelan had a career-worst 6.41 ERA in 2017 and even spent some time in the minor leagues. Over the past three years, his cumulative ERA was 5.67. He allowed 85 home runs in 88 appearances over 415 2/3 innings. In the 2017 season, which he described as a "roller coaster," he developed hamstring trouble. Then he got hit on the calf with a batted ball.
Sanchez pitched a no-hitter as a rookie with the Marlins on Sept. 6, 2006, and won a career-high 14 games for the Tigers and finished fourth in Cy Young voting in 2013.