The NL East champions announced the deal Friday, without giving financial terms. Earlier in the week, a person familiar with the talks told
The 32-year-old Haren was a free agent after going 12-13 with a 4.33 ERA in 30 starts for the Los Angeles Angels in 2012. The Angels nearly traded him to the Cubs after the season, then declined their $15.5 million option for 2013.
Haren is 119-97 with a 3.66 ERA with four clubs in the majors and was an All-Star in 2007, 2008 and 2009.