Having played Second XI cricket for both Surrey and Hampshire, Burns made his first-class debut for Surrey against Cambridge MCCU. He kept wicket in this match ahead of regular keepers Steven Davies and Gary Wilson. In this match, he scored 23 runs in Surrey's first-innings before being dismissed by Zafar Ansari, while in their second-innings he scored 16 runs before being dismissed by Josh Poysden. He also took two catches behind the stumps. This was his only first team appearance for Surrey in the 2011 season. In 2012 season he scored a century against Leeds Bradford MCCU and filled in as wicketkeeper in one game before being called upon to open the batting in early July against Lancashire. He remained in the team for the rest of the season finishing with 741 runs at an average of 49.4. He continued to open the batting in 2013 and 2014, playing all Surrey's First Class games in both seasons. He made his highest score of 199 in a game against Gloucestershire in June 2014. In June 2015, whilst playing for Surrey in a NatWest t20 Blast game against Sussex Sharks at Arundel Castle, Burns collided with teammate Moisés Henriques whilst attempting to take a catch. Both players were knocked unconscious from the collision with Burns requiring stitches to facial injuries and Henriques suffered a broken jaw. Ambulances and medical staff treated the players on-field before taking them both to hospital. The game was abandoned due to the injures.