Hargreaves began his career in the youth academy at Exeter City. He was released by the club in May 2017.[2]
Bristol Rovers
In April 2017, Hargreaves agreed terms to join Bristol Rovers upon the expiration of his contract with Exeter City.[3] In July 2017, he joined the first team during a pre-season camp in Portugal.[4]
On 29 August 2017, he made his professional debut replacing Liam Sercombe in the 83rd minute of a 5–1 EFL Trophy victory against Wycombe Wanderers.[5] On 31 October, he replaced Ryan Broom in the 66th minute of a 3–1 defeat to West Ham United Under-23s in the same competition.[6] On 29 November 2018, Hargreaves was loaned out to Hungerford Town for the rest of 2018.[7] The deal was later extended for the rest of the season.[8]
At the end of the 2018–19 season, Bristol Rovers exercised a contract extension for him.[9]
Hargreaves made his first league appearance for the club in a 1–0 victory over Milton Keynes Dons, replacing Ed Upson in the 75th minute of the match[10] and made his full league debut for the club in a 0–0 draw with Fleetwood Town on 29 December 2019, playing 84 minutes before being substituted.[11]
On 3 June 2020, Hargreaves signed a new two-year extension to his contract after having a breakthrough season.[12]
On 30 June 2022, Hargreaves returned to King's Lynn Town on a one-year deal for the upcoming National League North season following their relegation the previous season.[17]
Following the conclusion of the 2023–24 season, the club announced that Hargreaves had departed having rejected several offers to stay.[18]
Aldershot Town
On 18 June 2024, Hargreaves joined National League side Aldershot Town on a one-year deal.[19]