Liquid error (sections/pro-page-hero line 95): invalid url input
Garratt graduated through the Academy at Crewe Alexandra to sign a 2.5 year professional contract in January 2013. He joined Northern Premier League Premier Division side Stafford Rangers on loan the following month and made eight appearances. He made his senior debut for Crewe on 27 April 2013, in a tie against Walsall, two days after his 19th birthday and kept a clean sheet in a 2–0 victory.
Garratt was named as 'Breakthrough Player of the Year' at the club's annual awards. At the start of the 2014–15 season he saw off competition to establish himself as the club's first-choice goalkeeper. He was nominated for December's League One Player of the Month award after having kept a clean sheet against league leaders Bristol City and "producing stunning saves against both Oldham and Preston". He was named as the club's Player of the Year and was also voted as Players' Player of the Year. He was ever-present in the 2015–16 relegation campaign and won his second consecutive Player of the Year award. He was ever-present again in the 2016–17 League Two season and was also named as the club's Community Player of the Year in March 2018. However he was released by Crewe in May 2019. After training with Shrewsbury Town and playing in pre-season for Bury, Garratt trained with Blackburn Rovers and then Port Vale at the start of the 2019–20 season. He signed for Burton Albion in October 2019, making his Burton debut in an EFL Trophy tie against Mansfield Town on 12 November 2019.