The Houston Astros selected Fisher with the 37th overall selection in the 2014 Major League Baseball draft. He signed with the Astros, receiving a $1,534,100 signing bonus, and began his professional career with the Tri-City ValleyCats of the Class A-Short SeasonNew York–Penn League. He batted.303 in 41 games for Tri-City, and was assigned to the Quad Cities River Bandits of the Class AMidwest League to start the 2015 season. After he hit.305 with six home runs and 24 RBIs in 39 games, the Astros promoted Fisher to the Lancaster JetHawks of the Class A-AdvancedCalifornia League. Fisher hit three home runs, including two grand slams, as he recorded a California League record 12 RBIs in his first game for Lancaster. Fisher began the 2016 season with the Corpus Christi Hooks of the Class AATexas League. After he batted.245 with 16 home runs, 23 stolen bases, and 59 RBIs in 371 at-bats for Corpus Christi, the Astros promoted Fisher to the Fresno Grizzlies of the Class AAAPacific Coast League in August. The Astros invited Fisher to spring training as a non-roster player in 2017. He began the 2017 season with Fresno. The Astros promoted Fisher to the major leagues on June 14, 2017.. In his first game, he collected his first two hits, the first being a home run. In addition, the two hits came the same inning, making him the first player to do so since Adam LaRoche in 2004. He ended the day 2-for-3, and added two walks. He collected his first career stolen base the following game at home against the Boston Red Sox. The Astros optioned Fisher to the minor leagues, and he was selected to appear in the All-Star Futures Game. Fisher made the Astros' playoff roster, appearing primarily as a pinch runner. On October 30, in a game that started on October 29, he scored the game winning run in Game 5 of the 2017 World Series. The World Series would go on for 7 games, as the Astros successfully plowed through, winning the series for the first time. On March 24, 2018, the Astros announced that Fisher had made their 2018 Opening Day roster. He struggled offensively and was ultimately demoted to the AAA Fresno Grizzlies, hitting.165 with four home runs, eleven RBI's, and an OPS of.602 in 42 MLB games. In 2019, Fisher appeared in only 17 games with the Astros, hitting.226 with an OPS of.675, before being traded to the Toronto Blue Jays at the July 31 trade deadline.
Toronto Blue Jays
On July 31, 2019, the Astros traded Fisher to the Toronto Blue Jays in exchange for Aaron Sanchez, Joe Biagini, and Cal Stevenson. He hit.161 with 6 home runs in 40 games.