Born in Sale, Greater Manchester, Leigh joined Manchester City Academy in 2004 at age nine, after he was spotted by scouts whilst playing for Sale United. Initially, he joined the club as a striker before converting into a left–back position and progressed through the youth ranks for the side. He was also nominated for the 2012–13 Academy player of the season award. Leigh was included in Manchester City's squad for the pre-season friendly tour and appeared in several friendly matches. Afterwards, it was announced on 12 August 2014, Leigh joined League One club Crewe Alexandra on loan initially until January 2015, later extended to the end of the 2014–2015 season. Leigh made his professional debut in the League Cup against Barnsley on 12 August 2014; he started the match but was substituted by Jon Guthrie in the 62nd minute. He scored his first league goal, opening the scoring in a 2–0 win over Scunthorpe on 7 March 2015. This goal was voted the goal of the season for Crewe Alexandra as voted for by the fans. After his loan spell at Crewe Alexandra was concluded, making forty-two appearances in all competitions, Leigh was released by Manchester City Following this, Crewe Manager Steve Davis was keen to sign Leigh on a permanent basis, but he turned down the offer of a deal. During his time at Manchester City, despite lack of first team opportunities, Leigh reflected his time at the club, progressing through the new ownership and the club's development.
Bradford City
After Crewe Alexandra's attempts to sign him failed, Leigh went on trial at Bradford City. Following a successful trial with the club, he signed a one-year deal on 6 August 2015. However, Leigh struggled to fight for his first team place and spent most of the season as an unused substitute. Leigh then got his first team breakthrough when his fellow team-mate James Meredith was absent, due to international commitments and made his Bradford City debut on 13 October 2015, in the second round of the Football League Trophy, in a 2–1 loss against Barnsley. After continuously spending time on the substitutes bench, Leigh made his league debut for the club on 14 November 2015 against his former club, Crewe Alexandra, following Meredith's absence and Bradford City won 2–0. He then scored his first Bradford City goal five days later in an FA Cup first round replay, in a 2–0 win over Aldershot Town. Three days later on 21 November 2015, Leigh scored his first league goal for the club, in a 2–0 win over Scunthorpe United. Following Merderith's return to the first team, Leigh lost his first team place once again and because of this, only made six league appearances for the club.
Bury
Despite being offered a new contract by Bradford City, Leigh opted to move to Bury on 1 July 2016, signing a two-year contract and joining his team-mate Ben Williams. Upon joining the club, Leigh was given the number 3 shirt ahead of the new season. Leigh made his Bury debut, in the opening game of the season, playing in the left-back position and playing 90 minutes, in a 2–0 win over Charlton Athletic. Since making his Bury debut, he quickly established himself in the left–back position in the starting eleven. He played in a 5-3-2 formation under the management of Lee Clark. He started in every match since joining the club until he was sent–off for a second bookable offence, in a 1–0 loss against Sheffield United on 22 November 2016. After serving a one match suspension, he returned to the first team, regaining his place, in a 4–2 loss against Bristol Rovers on 10 December 2016. In a match against Oxford United on 17 December 2016, he scored an own goal, in a 3–2 loss. It wasn't until 14 March 2017 that Leigh scored his first goal for the club, as well as, setting up two goals, including a penalty, in a 3–0 win over Bristol Rovers. At the end of the 2016–17 season, having made 51 appearances and scoring once in all competitions, Leigh was named the disabled supporters' player of the year after a strong season at Bury. At the start of the 2017–18 season, Leigh continued to establish himself in the starting eleven, regaining his place in the left–back position. He then set up a goal for Nicky Ajose to score the club's second goal in the game, in a 3–2 loss against Bristol Rovers on 19 August 2017. Despite the club's poor results, which resulted in Clark's sacking, Leigh remained a standout for the side throughout the season. He then scored his first goal of the season, in a 3–1 win over Stoke City U23 on 8 November 2017. Then, on 21 November 2017, Leigh scored again, in a 1–0 win over Shrewsbury Town. However, despite suffering from an injury; he returned to the first team, as Bury were relegated from League One after finishing in 24th place at the end of the season. Leigh was offered a new contract by Bury at the end of the 2017–18 season
On 17 January 2013, Leigh was called up by England U19 for the first time. Weeks later on 5 February 2013, Leigh made his England U19 debut, playing 90 minutes, in a 3–1 win over Denmark U19. Leigh went on to make four appearances for the national team.