The deal includes bonus pay-for-performance incentives. Details were not disclosed.
"Odalis has worked extremely hard this winter and he is in top shape," Fitzgerald Astacio, a spokesman for Perez, told ESPNdeportes.com on Tuesday.
Perez signed with Washington to try to claim a spot in the Nationals' starting rotation, Astacio said.
"He will be given an opportunity to make the team's starting rotation," general manager Jim Bowden said. "He gives us depth to protect us against injuries and depth to allow us to not have to rush a young starting pitcher who is not ready for the major leagues."
Perez, 30, went 8-11 with a 5.57 ERA last year with the Kansas City Royals.
His best season was 2002, when he went 15-10 with a 3.00 ERA. Perez is 66-70 in his nine-year pitching career.
"He's a guy with plenty of big-league experience, who won as many games as anybody on our staff last year at the big-league level," manager Manny Acta said. "You never have enough pitching. And also the fact that we do have some guys that are coming into camp with some injuries, so we have to cover ourselves."
Enrique Rojas is a reporter and columnist for ESPNdeportes.com and ESPN.com. Information from The Associated Press contributed to this report.