Johnson was drafted in the third round, 26th overall, by Real Salt Lake in the 2006 MLS SuperDraft. On 25 July 2006, after only appearing in 7 matches with Salt Lake, Johnson was traded to Chicago Fire in exchange for Jack Stewart. In the remainder of the 2006 season, Johnson played 3 matches for the Fire and failed to agree on a new contract with the team at season's end. In early 2007, he was on trial with various teams in Scandinavia and eventually got a short-term contract with Swedish side Östers IF, that stretched from March 2007 to July 2007. Because Östers' had a surplus of centre forwards at the time, they chose not to extend his contract any further and instead loaned Anatolij Ponomarev from GAIS. In 2007, he was on trial in FK Bodø/Glimt where he played one game against Leknes FK. He scored the last goal in the 8–1 win. After a short stint playing indoor soccer with the New Jersey Ironmen, Johnson signed with San Jose Earthquakes for the 2008 MLS season. At the end of the 2009 MLS season, Johnson was named team MVP as the team's leading goalscorer. On 14 July 2011, San Jose traded Johnson, an international roster spot, and allocation money to Toronto FC for Nana Attakora, Alan Gordon and Jacob Peterson. On 20 July Johnson made his debut for Toronto in a 1–0 home loss to FC Dallas. Three days later against Sporting Kansas City Johnson scored his first goal of the season for Toronto and assisted on a goal by newly acquired Danny Koevermans. The game ended as a 4–2 away defeat. On 2 August, in the return leg of the preliminary round of the CONCACAF Champions League, Johnson scored a superb volley in the 37th minute, followed by a goal in the 47th from a misplaced pass by the Real Esteli F.C. keeper. The two goals put Toronto FC into the group stage for the second straight year on an aggregate of 4–2. Johnson continued his goal scoring form at the beginning of the 2012 season after scoring in both legs of the Champions League Quarter finals against Los Angeles Galaxy he scored a stunning goal against Seattle Sounders on 17 March. Johnson's goal against the Sounders earned him goal of the week. Johnson was awarded the George Gross Memorial Trophy as the 2012 Canadian Championship's best player. Johnson was traded with Miloš Kocić to Portland Timbers on 12 December 2012 in exchange for Joe Bendik, a first-round pick in the 2013 MLS SuperDraft, and allocation money. On 27 February 2014, Johnson transferred to Chinese Super League newcomer Henan Jianye. The start of the 2015 season saw Ryan join new Korean K-League side Seoul E-Land FC under the tutelage of former Vancouver Whitecaps FC manager Martin Rennie and his assistant, ex-West Bromwich Albion and Celtic FC's Dan Harris. In March 2016, Johnson signed for North American Soccer League side Rayo OKC. Johnson was released by Rayo OKC on 26 May 2016.
International
Johnson made his debut with the Jamaica national football team on 12 April 2006 in a friendly against the United States, playing the first 70 minutes. He was rewarded for his outstanding 2009 MLS season with a recall to the Jamaica national football team in January 2010 for a friendly match versus Canada and a February 2010 match versus Argentina. He scored his first national team goal in a 2–1 loss to Argentina in Mar del Plata on 10 February 2010. Johnson continued his strong performances with the national team by scoring the winning goal versus Costa Rica in September 2010.