Moon was born in Perth on 8 June 1987, and attended Luncarty Primary School and Perth Grammar School. Moon began playing football at a young age for local boys' club sides Bankfoot and Fossoway. He then joined the St. Johnstone youth set-up and was coached by then Head of Youth Development, Alastair Stevenson and his successor, Tommy Campbell.
Moon had played at youth level for St Johnstone and was a big part of the very successful under-17 side in the 2003–04 season, and that prompted then-manager John Connolly to give him his first professional contract in the summer of 2004. Among the other players given deals that summer was Andy Jackson. Moon made his professional debut in a Scottish Challenge Cup tie against Raith Rovers at McDiarmid Park during the 2005–06 season. He came on as a substitute after 60 minutes, and was impressive as the side went on to win 5–1. Having been a St Johnstone fan all his life and being well known as the "local hero" by many of the club's fans, Moon gained the nickname "Mooner" and a chant was introduced, and he was widely known as a fans favourite. Despite injuries ruining his second season, he managed to make one more appearance from the bench during the 2005–06 campaign. The 2006–07 season saw Moon in a difficult situation, where he was too old to play for the under 19s, but not yet regarded as a first team player, and for that reason then manager Owen Coyle sent him on loan to Forfar Athletic, originally for 6 months, however the loan was extended on 31 December 2006 to run through until the end of the season. After a successful loan period at Forfar, Coyle rewarded Moon with a new one-year contract. The start of the 2007–08 campaign wasn't great for Moon, after a couple of niggling injuries he never managed to force himself into recognition for a first team spot. However, his big break came when Owen Coyle, and his assistant Sandy Stewart, left St Johnstone to join English Football League Championship side Burnley, and Moon's teammate Derek McInnes was appointed as player/manager until the end of the season. Upon being appointed as manager, McInnes revealed to the local press that he was a big admirer of Moon's talents, and showed this by giving him his first league start away to Clyde at Broadwood Stadium on 29 December 2007, where Moon capped off a man of the match performance with a late goal. St Johnstone won 3–1. He scored his second goal for the club after coming off the bench against Stirling Albion at McDiarmid Park in January 2008, his goal meant that St Johnstone won the game 2–1. Moon made 7 starts, and 14 appearances from the bench during the campaign, scoring three times. McInnes gave Moon a new one-year deal in May 2008, with a view to an extension if he impressed during the 2008–09 campaign and in the January, Moon penned a new contract with the club until May 2011. He started a game at East End Park against Dunfermline Athletic in November 2008, where after 20 minutes, Stephen Glass made a late tackle on Moon in which he studded his diaphragm. This caused Moon to stop breathing, and lose consciousness. He was rushed to hospital, but regained consciousness before he left the ground. After this small setback, Moon started again at Dens Park against rivals Dundee also in November. Moon played an integral part in St Johnstone's promotion to the Scottish Premier League, particularly whilst Jody Morris was out of the side injured. Moon started off his SPL season in good form, and scored his first top flight goal with a late equaliser against Dundee United at Tannadice. However, in March 2010 in a midweek clash with Aberdeen, he was badly injured in a clash with midfielder Mark Kerr, and was stretchered off having played a massive part in St. Johnstone's victory by then. At first, it was reported that Moon had damaged his medial ligament and would be back within 4–6 weeks. However, following further scans it was discovered that he had torn his cruciate ligament and would be out for 6 months. He made some appearances near the end of the 2010–11 season after returning from injury. Moon was then given a short term contract to further prove his fitness. He became a first team regular in the early part of the 2011–12 season and was given an extended contract by new manager Steve Lomas. The 2012–13 season was one of frustration for Moon, who found himself isolated by Lomas. He subsequently left St. Johnstone in January 2013 by mutual consent.
Forfar Athletic (loan)
Moon went on loan to Forfar on 31 August 2006, originally the deal was until 31 December 2006, however it was extended until 15 May 2007. Moon made 25 appearances for Forfar Athletic, 23 starts and 2 substitute appearances, netting twice. He was voted Players' Player of the Year and Fans' Player of the Year at the end of season awards, and despite being a great success, Moon couldn't prevent them from being relegated to the Scottish Third Division.
Alloa Athletic
manager Paul Hartley signed Moon in February 2013 after he was released by St Johnstone. Moon made it clear that Hartley was the main factor in his decision to join the club, with the manager promising to provide him with a platform to rediscover his fitness and gain a professional contract from a bigger club. He signed with 'The Wasps' until the end of the 2012–13 season.
Raith Rovers
Moon signed for Raith Rovers on 28 May 2013 on an initial one-year deal. He was part of the Raith Rovers side which beat Rangers in the final of the Scottish Challenge Cup in the 2013-14 season. Moon extended his contract with Raith for a further season and was named the club's Player of the Year in his first campaign at Stark's Park.
ECU Joondalup SC
Moon signed with Western Australian club ECU Joondalup SC in 2016.