Zimmermann was rated the Nationals' best prospect going into the 2009 MLB season, according to Baseball America. In 2009, Zimmermann made the Nationals' roster as the fifth starter; however, the Nationals did not need him in the rotation until mid-April, so Zimmermann opened the season with the Triple-ASyracuse Chiefs. Zimmermann's contract was purchased on April 20, 2009, and he made his major league debut that night, after a two-plus hour rain delay, against the Atlanta Braves. He pitched six innings, allowing two runs on six hits, with three strikeouts and a walk, earning the victory. in July 2010 In his second game against the New York Mets, Zimmermann won his second game in as many starts, becoming the first Nationals/Expos pitcher to win his first two starts of his career since Randy Johnson did so in 1988. Coincidentally, Zimmermann was the losing pitcher in Johnson's historic 300th win on June 4, 2009. Zimmermann experienced elbow pain, and in July landed on the disabled list. After attempted rehab, in August 2009 Zimmermann was diagnosed with a torn ulnar collateral ligament and underwent Tommy John surgery, expecting to miss 18 months. He finished his rookie season of 2009 going 3–5 with a 4.63 ERA in 16 starts.
2010
In 2010, he made quick progress. Over four minor league levels, he started 10 games in limited play, racking up just 39.2 innings, but compiling a solid record: 1.59 ERA, 27 hits allowed, 31 strikeouts, and just six walks. On August 26 he was recalled to make his 2010 debut back in the big leagues, where Zimmermann got a no-decision in an eventual win by the Nationals over the Cardinals. On this same day, the Nationals learned that their other young pitching phenom, Stephen Strasburg, would need Tommy John surgery and would be out for 12–18 months. In Zimmermann's second return start, however, five days later, he pitched six shutout innings, allowing only one hit, no walks, and striking out nine, a personal best. He also became the first National to get through six innings facing only 18 batters. Zimmermann finished the 2010 year 1–2 with a 4.94 ERA in seven starts.
On May 28, 2012, Zimmermann hit his first career home run off of Miami Marlins pitcher Carlos Zambrano. Zimmermann became the third Nationals pitcher named NL Pitcher of the Month during the 2012 season when the selection was announced on August 2, 2012. During July he went 4–0 with an MLB-best 0.97 ERA. He gave up 27 hits in 37 innings and struck out 31 compared to 4 walks. He finished the 2012 season 12–8 with a 2.94 ERA. In Game 4 of the 2012 National League Division Series, Zimmermann made a relief appearance in the 7th inning, his first since 2008 at A-level Potomac. Entering a tie game, Zimmermann struck out the side. The Nationals would eventually lose the series to the St. Louis Cardinals after Game 5.
2013
Zimmermann hurled his first career shutout on April 26, 2013, with a one-hitter against the Cincinnati Reds. It was the second straight one-hitter by Nationals pitching in the series, marking the first occasion since 1917 that a Washington team achieved that streak, and the first time since 1900 that the Reds were victimized that way. In 2013, Zimmermann was named to his first All-Star Game, but chose not to play due to stiffness in his neck. He finished the season with a career high in wins, going 19–9, while also posting a 3.25 ERA and 161 strikeouts in a career-high innings over 32 starts. His wins total tied with Adam Wainwright for the National League lead.
2014
On September 28, 2014, the last day of the regular season, Zimmermann threw the first no-hitter in Washington Nationals history, a 1–0 win over the Miami Marlins and Henderson Alvarez, the pitcher who threw the final no-hitter of the 2013 season. Zimmermann faced only one over the minimum in the game; only a fifth inning walk to Justin Bour and a seventh inning third strike wild pitch that allowed Garrett Jones to reach first base separated him from a perfect game. This was also the first time in MLB history that a no-hitter had been thrown on the final day in two consecutive seasons. He finished the season with a 14–5 record and a 2.66 ERA, striking out a career-high 182 batters in innings.
2015
Zimmermann finished the 2015 season with a record of 13–10 along with a 3.66 ERA, 1.205 WHIP and 164 strikeouts in 201 innings pitched. Following the season, he became one of a record 20 players to receive a qualifying offer. Zimmermann finished his tenure with the Nationals starting 178 games, sporting a 70-50 record, a 3.32 ERA, pitching 1094 innings, eight complete games and striking out 903 batters.
Detroit Tigers
2016
On November 30, 2015, the Detroit Tigers signed Zimmermann to a five-year, $110 million contract. Zimmermann was named the American League Pitcher of the Month for April. During the month of April, Zimmermann allowed just two earned runs in 33 innings pitched, for a 0.55 ERA. He was 5–0, becoming the sixth pitcher to finish April with five-plus wins, zero losses and a sub-1.00 ERA. He joins Fernando Valenzuela, Randy Johnson, Cliff Lee, Zack Greinke, and Ubaldo Jiménez. Zimmermann's 0.55 ERA is the third-best mark for April in Tigers history. The only two Detroit pitchers with better ERAs in April were Bernie Boland with a 0.30 ERA in 1915 and John Hiller with a 0.36 ERA in 1974. On July 4, he was placed on the 15-day disabled list due to a neck strain.
2017
On May 23, Zimmermann recorded his 1,000th career strikeout in a game against the Houston Astros. On July 17, in a game against the Kansas City Royals, Zimmermann threw 79 strikes out of 97 pitches, an 81 percent strike rate that ranks as the best by a Tigers starter with 80 pitches or more since at least 1988, and was the best by a Major League starter since 2008. Overall, Zimmermann struggled throughout the 2017 season. In 29 starts, he went 8–13 with a 6.08 ERA and 1.55 WHIP.
2018
On April 11, Zimmermann was struck in the face by a line drive by Jason Kipnis. Zimmermann was taken to the hospital, and was diagnosed with a bruised jaw, but made his next start. On May 6, after making seven starts in the 2018 season, Zimmermann was placed on the 10-day disabled list with a right shoulder strain. He returned to the rotation on June 16. For the 2018 season, Zimmermann made 25 starts, compiling a 7–8 record with a 4.52 ERA and 111 strikeouts in innings pitched.
2019
Zimmermann opened the season as the Tigers Opening Day starter. He was placed on the disabled list on April 26, 2019 due to a UCL sprain. He returned to MLB action on June 19, starting and pitching four innings against the Pittsburgh Pirates. Zimmermann finished the 2019 season with a 6.91 ERA and a dismal 1–13 record, becoming the first Tiger pitcher since at least 1908 to post fewer than two wins in a season with at least 20 starts.
2020
On July 18, 2020, it was announced by the team that Zimmermann would begin the 2020 season on the 45/60 day disabled list due to a right forearm strain.
Pitching style
Zimmermann is mainly a three-pitch pitcher. He throws a four-seam fastball at that tops out at, a slider which he describes as a "baby cutter", and a curveball. On rare occasions, he also features a circle change to left-handed hitters.