Zimmermann, a two-time All-Star, went 70-50 with a 3.32 ERA in 178 career starts with the Washington Nationals. He boasts the highest profile of any free agent to have gone off the board in what has otherwise been a slow offseason for signings.
"We are very excited to add a pitcher of Jordan's caliber to our roster," Tigers general manager Al Avila said in a statement. "Jordan is a durable pitcher who pounds the strike zone and attacks the hitter on every pitch. He's a top-of-the-rotation-type talent we've been targeting this offseason."
Zimmermann joins Justin Verlander and Anibal Sanchez at the top of a Tigers rotation that has been making a major push to add depth after finishing last in the American League Central with a 74-87 record in 2015. The Tigers are still looking to add another starter, and they plan to have youngsters Daniel Norris, Matt Boyd and Shane Greene compete for the fifth spot in the rotation in spring training.
Verlander took to Twitter on Sunday to express his excitement after first hearing the news.
The 29-year-old Zimmermann was 13-10 with a 3.66 ERA in a career-high 33 starts for the Nationals last season. The 6-foot-2, 225-pounder won 19 games in 2013, tied for most in the National League.
On the final day of the 2014 season, against the Miami Marlins, Zimmermann became the first pitcher in Nationals history to toss a no-hitter.
Zimmermann is the Nationals' all-time leader in wins, innings, strikeouts and games started. He is one of four pitchers to work at least 190 innings and make 32 starts in each of the past four seasons. His 810 innings pitched over that time ranks third in the NL, behind only Clayton Kershaw and Madison Bumgarner.
ESPN.com's Jerry Crasnick, Katie Strang and Eddie Matz contributed to this report.