Watson was signed by Leeds United on schoolboy terms at the age of 10 after impressing scouts while playing for junior team Bishopthorpe White Rose. He was released in 2009 as he was deemed to not be tall enough, before joining Hull City at under-13 level. He agreed a two-year scholarship with Hull in February 2012. Watson signed a professional contract with Hull in June 2014. His first involvement with the first team came on 25 October 2014 as an unused substitute in a 0–0 draw away to Liverpool in the Premier League. Watson joined Conference North club Gainsborough Trinity on a 6 February 2015 on a one-month loan. He made his debut when starting a 2–1 away defeat to Leamington in the league on 14 February 2015. The loan was extended until the end of the 2014–15 season, after Watson had been named man of the match in two of his four appearances. Watson finished the loan with 14 appearances as Gainsborough ranked in 17th place in the table. He joined League One club Scunthorpe United on 10 August 2015 on a 28-day emergency loan, as cover for the suspended Luke Daniels. He did not play and was an unused substitute in three matches. On 1 July 2016, he joined newly promoted National League club North Ferriby United on loan for the 2016–17 season. He made his debut on 6 August 2016 in a 0–0 draw at home to Braintree Town, which was North Ferriby's first match at National Level.
Scunthorpe United
He was recalled from his loan ahead of permanent transfer to Scunthorpe United on a free transfer. He signed for the club on 31 January 2017 on a three-and-a-half-year contract and was immediately loaned back to North Ferriby for the rest of the season. Watson was recalled by Scunthorpe on 30 March 2017, having been an ever-present in the North Ferriby team in 2016–17 with 42 appearances. He was an unused substitute for Scunthorpe's eight remaining fixtures in 2016–17, a season that culminated in a 3–2 aggregate defeat to Millwall in the League One play-offs. Watson started 2017–18 as backup to first-choice goalkeeper Matt Gilks, with his first-team appearances limited to the EFL Trophy. His debut for Scunthorpe had come in this competition, when starting in a 3–1 home win over Sunderland U21 on 29 August 2017. He helped Scunthorpe to the second round, when they were beaten 2–1 at home by Leicester City U21 on 5 December 2017. After Gilks picked up a calf injury, Watson made his league debut for Scunthorpe by starting a 1–1 draw away to Portsmouth on 13 January 2018. He remained in goal for three more matches before Gilks returned for a match against Fleetwood Town on 3 February 2018. Watson was next called upon as a 61st-minute substitute in the first leg of Scunthorpe's play-off semi-final against Rotherham United on 12 May 2018 after Gilks picked up an injury and conceded once as Scunthorpe drew 2–2. Watson started in the second leg four days later, which Scunthorpe lost 2–0 and were therefore eliminated 4–2 on aggregate.