Duffy moved to Birmingham City in June 2014 but failed to establish himself in the side and was loaned out to Chesterfield and Burton Albion with whom he helped win promotion to the Championship. Duffy signed for Sheffield United in June 2016 and under the management of Chris Wilder the Blades won promotion from League One in 2016–17 and the Championship in 2018–19. In August 2019 Duffy joined Stoke City on loan for the first half of the 2019–20 season and then Dutch side ADO Den Haag in January 2020.
Duffy signed for League Two club Morecambe on loan in February 2009.[11] He scored his first goal Football League goal on 18 April 2009 in a 1–0 win against Notts County.[12] He made the move to Globe Arena permanent in the summer and scored six goals in 41 games as the Shrimps reached the League Two play-offs where they lost 7–2 on aggregate to Dagenham & Redbridge.[13] Duffy began the 2010–11 season in good form and manager Sammy McIlroy stated that he can go on to play at a higher level.[14]
Scunthorpe United
Duffy moved to Championship side Scunthorpe United on 20 January 2011 for an undisclosed fee, signing a two-and-a-half-year contract.[15][16] He made his debut two days later, in a 0–0 draw at home to Burnley.[17] Duffy played 22 times for Scunthopre in 2010–11 as the Iron suffered relegation to League One.[18] He made 43 appearances in 2011–12 helping Scunthopre avoid a second consecutive relegation.[19] However relegation to League Two was suffered in 2012–13 despite a final day victory against Swindon Town.[20] Following relegation Scunthopre received several bids for Duffy from Doncaster Rovers.[21][22]
Doncaster Rovers
Duffy moved to Doncaster Rovers in July 2013 for an undisclosed fee.[23] Duffy scored twice in 39 appearances in 2013–14 as Doncaster were relegated to League One on goal difference.[24][25]
Birmingham City
Duffy signed a two-year contract with Birmingham City in June 2014 after activating his relegation release clause at Doncaster Rovers.[26][27] He made his debut as a second-half substitute in the opening-day defeat at Middlesbrough, and his first League start for the club on 27 September, in a 2–1 home defeat to Fulham; Duffy was substituted at half-time, at which point Birmingham were leading.[28] After appearing only once more in the league by the end of January 2015, he spent a month on loan to League One club Chesterfield, where he made one start and two substitute appearances.[28][29]
Loan to Burton Albion
Before the start of the 2015–16 season, Duffy joined Burton Albion, newly promoted to League One, on loan until 2 January 2016.[30] In pre-season, Burton manager Jimmy-Floyd Hasselbaink used him in a playmaker role,[31] and he began the league season as a regular selection in the starting eleven.[32] In the opening match, Scunthorpe goalkeeper Luke Daniels was sent off for elbowing Duffy in the head; the resulting penalty gave Burton a 2–1 win.[33]
After the initial loan period expired, it was extended to the end of the season.[34] Duffy completed the season having missed only one league match, against Walsall in February after twisting his ankle in training.[32][35] He scored eight goals[32] and provided numerous assists[36] as Burton were promoted to the Championship as League One runners-up. His performances earned him selection in the PFA League One Team of the Year.[36]
Sheffield United
Duffy was released by Birmingham at the end of the season,[37] and signed a two-year contract with League One club Sheffield United.[38] Duffy won promotion from League One for a second successive year in 2017, and was also named in the PFA Team of the Year for a second time.[39] Duffy was converted to an attacking midfield role under the management of Chris Wilder as the Blades had a solid return to the Championship finishing in 10th place.[40][41] He signed a new contract with Sheffield United in January 2018.[42] Duffy scored six goals in 38 matches in 2018–19 as Sheffield United had a very successful campaign finishing as runners-up and were promoted to the Premier League.[43] However, in pre-season Duffy's request for a new contract was turned down by Wilder who made him available for a move away from Bramall Lane.[44]
On 31 January 2020 Duffy's loan at Stoke was cut short and he moved on a six-month loan to Dutch side ADO Den Haag.[48]
He was released by Sheffield United at the end of the 2019–20 season.[49]
Fleetwood Town
On 4 September 2020 he signed a one-year contract with Fleetwood Town.[50] He scored his first goal for Fleetwood in an EFL Cup tie against Everton on 23 September 2020.[51]
At the end of the 2020–21 season, he was released by Fleetwood Town.[52]
On 7 January 2022, Duffy signed for North West Counties League Premier Division side Macclesfield.[55] During his time at the club, he helped them achieve back-to-back league titles and promotions as they went from the ninth to the seventh tier,[56][57] as well as acting as first-team coach.[58] After the departure of Neil Danns on 5 May 2023, Duffy was named as the head coach of Macclesfield.[58] He was sacked in October 2023 following a run of four defeats in five matches.[59]
Warrington Rylands
In February 2024, Duffy returned to playing when he joined Warrington Rylands.[60] He made nine appearances, mainly as a substitute, and, after Rylands' manager was sacked in mid-April, took charge of the team alongside Dean Furman took charge of the team for the last three matches of the season, which included a play-off semifinal defeat.[61][62] On 24 May, Duffy was appointed manager of Warrington Rylands.[63]
Following a poor start to the season, he was sacked in September 2024.[64]
Career statistics
As of match played 15 April 2023
Appearances and goals by club, season and competition
^Two appearances in FA Trophy, two appearances and two goals in Conference League Cup, two appearances in Conference North play-offs, two appearances and one goal in Lancashire Junior Cup, one appearance in Liverpool Senior Cup
^Six appearances and two goals in FA Trophy, three appearances in Conference League Cup, one appearance in Lancashire Junior Cup
^ ab"Motormen Match Stats 2004-05". The Motorman: The Official Programme of Vauxhall Motors F.C. vs Tranmere Rovers (pre-season friendly). 8 July 2005.