Halstead made his first league start for Blackpool on 9 February 2013, in a 2–1 victory over Millwall at Bloomfield Road.[11] It was ultimately also his last appearance for the club.
Shrewsbury Town
Following his release from Blackpool, Halstead joined Shrewsbury Town in League Two on a free transfer on 5 June 2014.[12] He made his debut as a substitute in a first-round FA Cup tie away at Walsall on 8 November,[13] and made one subsequent appearance that season in a league match against Cambridge United, as a half-time substitute for first-choice goalkeeper Jayson Leutwiler in a 0–0 draw.[14]
The following season, now in League One, Halstead made his first start for Shrewsbury against his former club Blackpool on 26 September 2015, keeping a clean sheet in a 2–0 win for the club's first home victory of the season.[15][16]
Although Leutwiler was reinstated immediately after recovering from a back injury, Halstead had another run in the first-team when Leutwiler suffered a serious facial injury in an FA Cup second-round tie away at Grimsby Town. Coming on as a substitute, he helped Shrewsbury keep a clean sheet to set up a replay back at New Meadow,[17][18] where he featured again in a 1–0 victory, to confirm a third-round tie away at Cardiff City.[19] After conceding ten goals in two league games,[20] he lost his place once again to Leutwiler for an away match at Burton Albion,[21] but returned to the side for a further consecutive six matches during March and April, including one win and three draws, before being sent-off late on in a 3–1 defeat against Millwall.[22] Halstead made one final appearance that season in the penultimate match, where despite losing 4–3 to Peterborough United, same day defeats for Blackpool and Doncaster Rovers ensured another season of League One football with one game to spare.[23]
Halstead signed a new one-year contract extension in August 2016.[24] Starting the season again as second-choice, he returned to the starting line-up under new manager Paul Hurst following Leutwilers first call-up to the Canada national team.[25] It was announced Halstead was to be released by the club at the end of his contract in May 2017.[26]
Despite Halstead being named on Southport's retained list at the end of the 2017–18 season,[28] he signed for Morecambe on 9 July 2018. Halstead, in an interview on the club's official website, said his move to Morecambe "was an opportunity to resurrect [his] career and one [he] couldn't turn down" and he was "delighted" to make the move back into the Football League. Morecambe manager Jim Bentley described Halstead as "experienced," "a decent all round goalkeeper" and "hungry to prove he can be number one."[29] He signed a new two-year contract with the club in June 2019.[30] He was released at the end of the 2020–21 season.