Zagunis began the 2016 season with the Tennessee Smokies of the Double-ASouthern League, and earned a promotion to the Iowa Cubs of the Triple-APacific Coast League in June.[15] He finished the 2016 season batting .288 with 10 home runs and 49 RBI's.[16] Zagunis began the 2017 season with the Iowa Cubs, and was called up to the major leagues on June 22, 2017, following an injury to outfielder Jason Heyward.[17] He made his MLB debut that day, going 0-for-5 with an RBI and a stolen base against the Miami Marlins. He finished his debut year with no hits in 18 plate appearances across 7 games. In 97 games for Iowa, he hit .267/.404/.455 with 13 home runs and 55 RBI. Zagunis spent the majority of the 2018 season in Iowa, hitting .272/.395/.375 in 115 games, also going 2-for-5 in 5 big league games for Chicago. In 2019, Zagunis appeared in 30 games for the Cubs, hitting .250/.325/.333 with no home runs and 5 RBI. On August 20, 2019, he was optioned down to the Triple-AIowa Cubs.[18] On August 31, Zagunis was designated for assignment.[19] He finished the year in Iowa, slashing .294/.361/.475 with 6 home runs and 43 RBI in 68 games.
Zagunis opted out of the shortened 2020 season due to concerns regarding the COVID-19 pandemic.[20] On October 22, 2020, Zagunis was outrighted off of the 40-man roster.[21] He became a free agent on November 2.[22]
Lancaster Barnstormers
On March 8, 2022, Zagunis signed with the Lancaster Barnstormers of the Atlantic League of Professional Baseball.[23] He appeared in 20 games for Lancaster, batting .203/.351/.271 with 1 home run and 5 RBI. With Lancaster, Zagunis won the Atlantic League championship.[24] He became a free agent following the season.