Leahy began his career with
Rugby Town, affiliated with the
Gordon Strachan Football Foundation.
Falkirk Leahy signed for
Falkirk in the summer of 2012, after trials with
Birmingham City,
Bradford City and
Peterborough United. He was signed by
Steven Pressley originally as an attacking midfielder, despite the fact he had played left-back for
Rugby Town the previous season. He made his first team début in the
Scottish Challenge Cup against
Stirling Albion on 28 July 2012. His league debut came in September against
Cowdenbeath at
Central Park as a substitute in the 72nd minute of the game. On 10 November 2012, he scored his first goal for
The Bairns against
Raith Rovers at
Stark's Park. However, he would only go on to make three further appearances that season; two of which were from the bench. Leahy continued to be a peripheral figure under
Gary Holt as he struggled to stake a claim for a place in the side; on 7 September 2013, he was even listed as the substitute goalkeeper for Falkirk in their
Scottish Challenge Cup Quarter Final against
Raith Rovers, as Falkirk didn't have a third choice keeper to put on the bench. He made 23 appearances in all competitions in the 2013–14 season, most of which were from the bench, and managed a solitary goal; an injury time equaliser against
Dundee at
Dens Park.
Peter Houston became Falkirk manager in the summer of 2014, just after Leahy had signed a new two-year contract extension. Houston was the first manager to give Leahy a chance to hold down a place in the side. He was on the bench for the first four league games of season 2014/15, but started the 1–1 draw with
Queen of the South on 13 September 2014 at left-back, and has since made the position his own. Leahy made 41 appearances in all competitions; he also started the 2015
Scottish Cup Final for Falkirk against
Inverness Caledonian Thistle, which they lost 2–1. He continued to be a mainstay in the Falkirk team that had a fantastic season finishing 2nd in the 2015/16
Scottish Championship, making 46 appearances across all competitions. On 22 August 2015, he scored what would go on to be voted Falkirk's goal of the season in a 2–1 win against
Livingston at
Almondvale. On 19 February 2016, Leahy penned a one-year extension with Falkirk, keeping him at the club until the summer of 2017. Leahy left the Bairns in May 2017, following the expiration of his contract.
Bristol Rovers He was released by Walsall at the end of the 2018–19 season. On 9 July 2019, Leahy joined
League One side
Bristol Rovers. He made his debut for the club on 3 August 2019, in an opening 2–0 defeat away at
Blackpool. He scored his first goal for the club on 10 November 2019, opening the scoring at the back-post in a 1–1 draw with
Bromley in the
FA Cup first round. Leahy scored his first league goal for Rovers on the opening day of the
2020–21, converting a penalty in a 1–1 draw away at
Sunderland. With the appointment of Rovers' third manager of the season
Joey Barton, Leahy was made captain of the club as
Max Ehmer lost his armband. On 10 April 2021, Leahy scored his tenth goal of the season to open the scoring in a vital relegation six-pointer against
Northampton Town, a game in which Rovers would go on to draw 1–1. Leahy was out of contract at the end of the 2020–21 season, a season that saw Rovers relegated bottom of the league. Despite an offer of a new contract from the club, Leahy opted to leave instead.
Shrewsbury Town On 17 May 2021, Leahy agreed to join
Shrewsbury Town, signing a two-year contract from 1 July 2021. He left Shrewsbury Town on 11 July 2023 after handing in a transfer request.
Wycombe Wanderers On 11 July 2023, Leahy joined
Wycombe Wanderers on a 3 year Contract. On 19 September 2023, Leahy scored his first goal for the club in a 1–0 victory against
Crystal Palace's U21 team in the group stage of the
EFL Trophy. Later the same month on 30 September, he scored his first regular season goal by converting a penalty in a 2–0 win over
Carlisle United. On 11 November 2023, Leahy was knocked unconscious in the penalty area while challenging for the ball at home against
Stevenage in a 1–0 defeat. He required hospitalization afterwards. ==Career statistics==