Devine began his career with Bradford City,[5] joining at under-13 level,[4] and signing his first professional contract in June 2016.[6] He spent a loan spell at Harrogate Railway Athletic earlier that year.[7]
He made his senior debut for the club on 6 August 2016 in the opening league game of the 2016–17 season, in a march against Port Vale.[3][8]
He signed a new contract with the club in October 2016, until June 2019.[9] He stated he hoped that his progress with the first-team would act as an inspiration to other young players at the club.[10]
He did not play between March and November 2018 due to injury, making his first appearance of the 2018–19 season as a late substitute in an FA Cup game on 10 November 2018.[11][12] In April 2019,having made no further first-team appearances, new manager Gary Bowyer said Devine was in "contention" for more games.[13] After returning to first-team action, including his first start in two years on 27 April 2019, Devine said he wanted to help the club's promotion push in the 2019–20 season.[14]
In May 2019, following Bradford City's relegation to League Two, he was one of 3 first-team players to be offered a new contract by the club.[15] Later that month he signed a new one-year contract with the club.[16] He said he hoped the club's relegation would be a new start for the club.[17]
On 19 October 2019 he scored his first goal for Bradford City in a 2–1 league victory at home to Crawley Town.[18][19] Manager Gary Bowyer said it provided a confidence boost for Devine, and that he hoped Devine had more to offer.[20] On 22 October 2019, in a match against Port Vale, Devine was the only Bradford City player still with the club from when the two teams previously met for his debut in August 2016.[19] In November 2019 he said he was keen to work with and inspire Bradford City's youth players.[21]
On 26 May 2020 it was announced that he was one of 10 players who would leave Bradford City when their contract expired on 30 June 2020.[22] After leaving the club he said that he was "disappointed" how his time at the club ended and that he was looking forward to finding a new club and playing more games.[23]
Carlisle United
Devine signed for Carlisle United on 6 August 2020 following his release from Bradford City.[24] In December 2020 he said he was looking forward to returning to Bradford to play against his former club.[4] Devine was released by the club at the end of the 2021–22 season.[25]