Josh began his career at Stockport County making nine first team appearances. In 2009 he made the move to Celtic for a £250,000 fee, joining up with Tony Mowbray who had previously taken him on trial at West Brom. Thompson was named Young Player of the Year, in his first season in Scotland. Whilst at Celtic, he went onto loan to three clubs; Rochdale, Peterborough United and Chesterfield.
At Chesterfield, Thompson played at Wembley in the Football League Cup Trophy, helping his team overcome Swindon Town 2-0 in 2012. His next permanent move came when he joined Portsmouth in 2012. After making three appearances for Pompey, an unfortunate ankle injury kept him out of action for six weeks.
Following this spell he had short loans at Colchester and Tranmere Rovers. Thompson joined Southport in 2015 and went on to make over 56 appearances for the club before joining Macclesfield in July 2017.