The deal is for a guaranteed $9 million, but with performance bonuses and escalators could rise to as much as $14 million over two years or $21 million over three years, based on a player option for 2020, an MLB source told ESPN's Jerry Crasnick.
The agreement was first reported by FanRag Sports.
The 32-year-old lefty was 7-4 with 10 saves and 53 strikeouts over 66 2/3 innings in 71 relief appearances last year for Pittsburgh and the Los Angeles Dodgers, which acquired him for a pair of minor leaguers at the July 31 trade deadline. Watson had a 2.57 ERA while pitching seven innings over 11 relief outings in the Dodgers' run to within one game of winning the World Series.
Watson was 5-3 with a 3.66 ERA in 47 games for the Pirates last season after beginning the season as Pittsburgh's closer, but he was removed in favor of Felipe Rivero after blowing consecutive save opportunities in Baltimore in June.
Watson was an All-Star for the Pirates in 2014 while serving as a setup man for Mark Melancon. Watson, who became a free agent in December, is also highly durable. He has a 33-17 career record with a 2.68 ERA in 474 relief appearances since making his major league debut in 2011.