Born in Nuneaton, England, Ginnelly began his career at Aston Villa, where he spent seven years.[3] Following his release from the Aston Villa youth system, Ginnelly began a two-year scholarship with Shrewsbury Town in 2013.[2]
At the start of his Shrewsbury Town career, Ginnelly was immediately assigned to the club's youth team.[4] He quickly impressed for the youth side, and subsequently was called up to the first team by manager Michael Jackson.[5][6] Ginnelly appeared as an unused substitute in the last game of the season, in a 1–1 draw against Gillingham.[7]
Ginnelly made his Football League debut under manager Micky Mellon on 30 August 2014, coming on as a late substitute for James Collins in a 2–0 win over Luton Town at the New Meadow.[8] After the match, he said making his professional debut was a "dream come true".[9] Local newspaper, Shropshire Star, praised Ginnelly's performance for his technical ability, quoting: "bringing down a long ball with his first touch before showing ambition by taking on two Luton defenders."[10] However, Ginnelly only appeared two more times later in the 2014–15 season.[11] He was awarded the club's Youth Player of the Year at the award ceremony.[12]
He was offered his first professional contract in March 2015,[13] but he failed to return to training the following pre-season with his contract situation unresolved.[14]
Burnley
Ginnelly was reported to be having trials with Norwich City,[15] and Burnley scouted by ex u21 scout Aidy Wilson ,[16] and joined the latter for an undisclosed fee on a three-year deal on 10 August 2015.[17]
Ginnelly was released by Burnley following the expiration of his contract after three years at the club, without making a first team appearance for the side.[18]
Altrincham (loan)
On 8 January 2016, Ginnelly joined National League side Altrincham on an initial one-month loan.[19][6] He made his debut on 23 January 2016 in a 5–0 win over Grimsby Town, playing the entire game.[20] Ginnelly scored his first goal for the club three days later in a 3–1 win over Woking.[21] He then scored two goals in two matches between 9 February 2016 and 13 February 2016 against Wrexham and Lincoln City respectively.[22] During a match against Barrow on 12 March 2016, Ginnelly was the subject of racist abuse by opposition fans, prompting a police investigation.[23] Despite this, he had his loan spell at the club extended until the end of the season, having previously extended the previous month.[24] Ginnelly scored two more goals later in the season as he went on to make twenty appearances and scored five times in all competitions – Altrincham were however still relegated from the division.[25]
Walsall (loan)
On 28 July 2016, Ginnelly signed for EFL League One side Walsall on loan until January 2017.[26] He made his Walsall debut on 30 August 2016, a 72nd-minute substitute, in a 5–2 win over Grimsby Town in the Football League Trophy.[27] He spent much of the start of the season on the bench,[28] finally making his league debut on 15 October 2016 in a 3–2 victory over his former club Shrewsbury.[29][30] His performance earned him a run of games for the club, however he returned to Burnley in January 2017 having failed to make an appearance since November.[29][31]
Lincoln City (loan)
On 30 January 2017, Ginnelly signed for National League leaders Lincoln City on loan until the end of the season.[32] He made his Lincoln City debut, playing the whole game (and played a role that led to Terell Thomas scoring an own goal), in a 3–2 win over Woking on 11 February 2017.[33] He made a total of seventeen appearances in all competitions as Lincoln finished as champions.[34][35]
On 26 June 2017, Ginnelly re-joined Lincoln City on a season long loan for the 2017–18 season.[36] Ginnelly scored his first goal for Lincoln on the first day of the following season in a 2–2 draw with Wycombe Wanderers on 5 August 2017.[37] After suffering ankle injury that kept him out throughout August, he returned from injury on 9 September 2017, where he came on as a substitute, in a 2–1 win over Stevenage.[38] It wasn't until 7 November 2017 when he scored again in a 2–1 win over Notts County in the Football League Trophy.[39] A month later, on 26 December 2017, Ginnelly scored his third goal of the season, in a 3–0 win over Stevenage.[40] However, he appeared in and out of the starting eleven, and faced competition from other players, including loanee signing Danny Rowe.[41] As a result, he was recalled by Burnley, making nineteen total appearances and scoring three times in his second loan spell at Lincoln City.[42]
Tranmere Rovers (loan)
On 12 January 2018, he signed a loan deal with Tranmere Rovers until the end of the season.[43] Ginnelly scored on his Tranmere Rovers debut eight days after joining the club, in a 3–2 win over Maidenhead United.[44] Despite losing his first team place between late–March and mid–April, he returned to the starting lineup on 21 April 2018, in a 2–0 win over Halifax Town.[45] In the play-off semi-final, Ginnelly scored in a 4–2 win over Ebbsfleet.[46] Ginnelly played the entirety of the National League play-off final, helping the side beat Boreham Wood 2–1 at Wembley and ensuring the club's return to the EFL after a three-year absence.[47] He went on to make 12 appearances and scoring two times for the side.
Walsall
After being released by Burnley at the end of the 2017–18 season, it was announced on 5 June 2018 that Ginnelly signed a one–year contract at former loan club Walsall.[48] Upon joining the club, he revealed that Manager Dean Keates convinced him to re-join Walsall, citing his style of management.[49]
Ginnelly's first game after re-signing for the club came in the opening game of the season, where he started the match and played 84 minutes, in a 2–1 win over Plymouth Argyle.[50] It wasn't until 14 August 2018 when he scored his first goal for the club, in a 3–1 win over Tranmere Rovers in the first round of the League Cup.[51] A week later, on 25 August 2018, Ginnelly scored again, in a 3–1 win over Rochdale.[52] Ginnelly quickly became a first team regular, playing in an attacking role, and formed a partnership with Luke Leahy.[53]
Preston North End
On 1 January 2019, he signed a two-and-a-half-year contract with Preston North End for an undisclosed fee, keeping him at the club until the end of the 2020–21 season.[54]
^"youth: Town 0 Blackpool 1". Shrewsbury Town F.C. 12 August 2013. Archived from the original on 7 September 2018. Retrieved 8 September 2018. "Youth: Town 13-0 Chasetown". Shrewsbury Town F.C. 3 September 2014. Archived from the original on 7 September 2018. Retrieved 8 September 2018. "Dawes Pleased With Youth". Shrewsbury Town F.C. 7 September 2014. Archived from the original on 7 September 2018. Retrieved 8 September 2018.