Kellett came through the Bolton Wanderers' academy and made his debut for the team in a 1–0 loss against Leicester City on 22 April 2014, coming on as a substitute for Robert Hall for the last 20 minutes of the Championship match.[2] It was the first time in eight years a Bolton-born player had made his debut for the club after coming through the academy.[3] He again came on from the bench the following game, a 3–1 away win at Sheffield Wednesday, where he was praised for his attitude and performance.[4]
On 17 October, he joined League Two club Plymouth Argyle on a one-month loan,[5] which was later extended for a further month.[6] His first Plymouth appearance was a goalless draw at AFC Wimbledon four days after signing,[7] and he scored his first career goal on 13 December, in a 3–2 win over Northampton Town at Sixfields Stadium.[8]
On 2 February 2015, transfer deadline day, Manchester United signed Kellett on loan for the rest of the season, with Saidy Janko going in the opposite direction for the same period.[9][10] According to Bolton manager Neil Lennon, Kellett believed that Lennon was "winding him up" when he mentioned United's interest in him.[11] He made 10 appearances for the Manchester United under-21s during the loan, including one appearance in the 1–0 Manchester Senior Cup semi-final defeat away to his parent club, Bolton.[12]
After returning to Bolton, Kellett signed a three-year contract with newly relegated League One club Wigan Athletic on 1 September 2015, moving for an undisclosed fee.[13] He made his debut four days later, coming on for Sean Murray in the 79th minute of a 3–2 win at Chesterfield.[14]
Having not played for Wigan since March 2017, he joined League Two team Chesterfield on loan for the 2017–18 season in August, reuniting with former manager Gary Caldwell.[15] He played 41 total matches for the relegated Spireites, scoring four times including in a 2–2 draw at local rivals Mansfield Town on 25 November.[16]
He was released by Wigan at the end of the 2017–18 season.[17]
On 31 May 2018, Kellett signed for Notts County of League Two on a two-year contract.[18] He made his debut on 11 August in a 3–2 loss at Cambridge United, playing the last nine minutes in place of Nathan Thomas,[19] and two weeks later scored the only goal of his 16 appearances to equalise in a 3–1 loss at Lincoln City.[20][21] On 27 August 2019, he left by mutual consent after not playing for Notts County at the start of the National League season.[22]
After being released by Notts County, Kellett signed for Fylde on a "short-term basis" in December 2019.[23] He made just two appearances, both as a substitute and neither in the league,[24][25] before signing for Alfreton Town in March 2020.[26]
On 19 June 2023, after injury ridden stints at Alfreton Town and Guiseley, Kellett signed for Bury.[27]