Burns signed with the Blue Jays and made his professional debut with the Gulf Coast League Blue Jays, before being promoted to the Vancouver Canadians of the Class A-Short SeasonNorthwest League. In 2011, he played in 28 games and batted.250 with 3 home runs and 14 RBI. Burns played for the Lansing Lugnuts of the Class AMidwest League in 2012, appearing in 78 games and hitting.248 with 9 home runs and 37 RBI. Burns began the 2013 minor league season with the Dunedin Blue Jays of the Class A-AdvancedFlorida State League, and was promoted at midseason to the New Hampshire Fisher Cats of the Double-AEastern League. He played in 128 games split between the two teams, and hit.288 with a career-high 15 home runs, 85 RBI, and 33 stolen bases. After the 2013 season, the Blue Jays assigned Burns to the Salt River Rafters of the Arizona Fall League, where he was named player of the week in the fourth week of the six-week schedule. He batted.312 with 13 RBI in 21 games for the Rafters. The Blue Jays invited Burns to spring training as a non-roster invitee in 2014, but he did not make the team, returning to the New Hampshire Fisher Cats for the entire 2014 season. He would play in a career-high 133 games that season, batting.255 with 15 home runs, 63 RBI, and 18 stolen bases. In the offseason, he appeared in 12 games for the Bravos de Margarita of the Venezuelan Professional Baseball League, and hit.205 with 5 RBI. Burns began the 2015 season in New Hampshire, and earned a promoted to the Triple-ABuffalo Bisons on April 17. He would play in 132 total games in 2015, batting.291 with 5 home runs and 46 RBI. Burns was invited to Major League spring training on January 12, 2016. He was optioned to Triple-A at the end of spring training. At the time of his call-up to the Blue Jays in May, he was hitting.250 with 9 doubles, 2 home runs, and 10 RBI for the Bisons.
Toronto Blue Jays
On May 6, 2016, Burns was called up by the Blue Jays. He made his Major League debut on May 9, striking out in a pinch-hitting appearance against the San Francisco Giants. Burns was optioned back to Buffalo on May 17, and recalled by the Blue Jays on June 15, only to be returned on June 18. Burns was recalled by the Blue Jays on July 8, and optioned back to Triple-A on July 22. He was recalled once more on September 27, but did not appear in any additional games for the Blue Jays. Burns appeared in ten games for the Blue Jays in 2016, scoring two runs and going hitless in six at-bats. On December 2, Burns was outrighted to Triple-A Buffalo after clearing waivers. He was released by the Blue Jays organization on January 5, 2017.
Lotte Giants
On January 8, 2017, Burns signed a one-year, $650,000 contract with the Lotte Giants. He became a free agent after the 2018 season.
Second stint with Toronto Blue Jays
On February 4, 2019, Burns signed a minor league deal with the Toronto Blue Jays.