Johnson started playing rugby with the Oxfordshire based amateur club Chinnor then plying their trade in South West Division 1. His form there led to him being called up by the Oxfordshire county side who he helped to reach the Tetley's County Shield final in 2003 - losing at Twickenham to Northumberland. In 2004 Johnson joined Reading who had just gained promotion to National Division Three South from the division he had just been in with at Chinnor. At his new club Johnson played in all 28 of their National Three South and Cup matches, mostly at Number 8, and plundered 17 tries, helping the Berkshire side to 6th place in the league. He bagged four in a game twice, against Dings Crusaders and Lydney. Johnson switched to Coventry the following season and along the way to becoming the first Reading player to excel on the professional stage since Ayoola Erinle, then a future Englandcentre. During his Coventry days he scored an 80-metre try against Otley, this was an early indication of his nimble footwork for a big man and ability to finish moves from long range. Johnson joined Exeter Chiefs in 2007 and since then was a regular on the Exeter teamsheet, He made his Exeter debut on 1 September 2007 against Sedgley Park. Johnson was a part of the Exeter team that gained promotion from the RFU Championship to the Aviva Premiership. Johnson became a key component in Exeter's success and in 2011 was rewarded with an international callup. On 2 January 2014, Johnson signed a three-year contract extension to stay with Exeter Chiefs until 2016/17 season. Johnson retired from professional rugby in 2017 and formed his own health and wellbeing lifestyle company, . He is now a fully qualified personal coach, delivering personal training and online personal coaching.
International career
Johnson was called up to a select England side to face the Barbarians in 2011. Johnson made numerous starts for the England Saxons squad receiving many positive reviews and was part of the team that won the 2011 Churchill Cup defeating Canada in the final. In 2012 Johnson was selected for England's tour to South Africa. Johnson started all three games for England against South Africa. For his first cap on the England tour of South Africa in June 2012, Johnson became the first full England international from Exeter Rugby Club since Martin Underwood in 1964. Johnson went on to represent England against Fiji and Australia in the Autumn internationals. Johnson scored his first try for England in the 54-12 win over Fiji. Johnson was originally selected in Englands squad for the 2013 Six Nations however he was dropped after suffering a knee ligament injury for Exeter Chiefs in their Heineken Cup match against Leinster at Sandy Park ruling him out of the Tournament. Johnson returned to the England team when he was called up for the tour to Argentina and Uruguay in 2013