Heaton began his career with Manchester United but was unable to break into the first team and spent time on loan with Swindon Town, Royal Antwerp, Cardiff City, Queens Park Rangers, Rochdale and Wycombe Wanderers, before joining Cardiff permanently after his release by Manchester United in July 2010. He then joined Bristol City on a one-year deal with an option of a second year but turned it down in May 2013 in favour of a move to Burnley, where he remained for six years before joining Aston Villa in 2019.