Born in Keighley, Pearson joined Blackburn Rovers at the age of 10, progressing through the academy to sign his first professional contract in the summer of 2011.
On 5 January 2012, he joined Football Conference side Lincoln City on a youth loan. Pearson made his debut for the Imps on 18 January, in a 2–1 win over Carshalton Athletic in the FA Trophy. However, his loan was cut short two months early as he was recalled by his parent club.
On 31 July 2012, Pearson joined Football League Two side Rochdale on a one-year deal after his release by Blackburn. Upon joining the club, he was given number nineteen shirt for the new season.
Pearson made his professional debut came on 11 August 2012, in a 4–3 defeat to Barnsley in the Football League Cup and made his league debut for the club, making a start and played the whole game, in a 0–0 draw against Northampton Town in the opening game of the season. Pearson then set up one of the goals, in a 2–0 win over Barnet on 1 September 2012. However, Pearson soon lost his first team place, as the season progressed and made nine appearance for the club.
Pearson was released by Rochdale at the end of his contract
On 1 March 2013, Pearson joined FC Halifax Town on loan, making his debut for the club in the following day's 5–0 Football Conference North home victory over Worcester City. Pearson became a first team regular at the club, having made seventeen appearance for the club.
On 30 June 2013, Halifax Town announced that Pearson had signed a two-year contract to join the club on a permanent basis. Upon joining the club on a permanent basis, Pearson was given number five shirt for the new season and his first game after signing for the club on a permanent basis came in the opening game of the season, where they lost 5–1 to Cambridge United. It wasn't until on 26 December 2013 when he scored his first goal for the club, in a 1–1 draw against Gateshead. After serving a two match suspension, Pearson scored on his return on 1 March 2014, in a 2–0 win over Tamworth. Despite being suspended twice in the season, Pearson finished the 2013–14 season, making forty-six appearance and scoring two times in all competitions. For his performance, Pearson had his contract with the club extended.
In the 2014–15 season, Pearson started the season well when he scored his first goal of the season, in a 3–0 win over Chester on 23 August 2014. However, Pearson was sent off in the 52nd minutes, in a 2–1 loss against Welling United on 22 November 2014. After serving a three match suspension, he made his first team return, coming on as a substitute in the second half, in a 2–0 win over Nuneaton Town on 20 December 2014. Pearson then scored two goals in two matches against Dartford and Telford United. Pearson went on to finish the 2014–15 season, making forty-two appearance and scoring three times in all competitions.
Due to his good performance at Halifax Town, Pearson joined League Two side Accrington Stanley, signing a one-year contract. Upon joining the club, Pearson said joining a club based on playing in the Football League was "too good to miss", stating he would regret if he reject the opportunity.
Pearson made his Accrington Stanley debut, making his first start and played the whole game, in the opening game of the season, in a 1–1 draw against Luton Town. Since making his debut, Pearson become an immediate first team regular at the club and earned himself a nickname as "Mr Angry" whenever he's on the pitch, though Pearson, himself, stated he's a serious player, rather than angry. He scored his first goal for the club on 24 October 2015, in a 3–1 win over Dagenham & Redbridge. Pearson's second goal for the club came on 28 November 2015, in a 5–1 win over York City. As a result, he was awarded with a new contract in January. His second goal later came on 13 February 2016, in a 4–1 win over Crawley Town. In the 2015–16 season, Pearson played all 46 league matches and scoring three times in his first season, as well as, playing fifty-two match in all competitions.
In the 2016–17 season, Pearson scored his first goal of the season, in the opening game of the season, in a 3–2 win over Doncaster Rovers. Two weeks later on 24 August 2016, he scored again in the last minute of extra time, in a 1–0 win over Burnley in the second round of the League Cup. Six days later, on 30 August 2016, he was given the captaincy for the first time for the whole game, in a 3–0 loss against Crewe Alexandra.
In August 2017 he signed for Barnsley. He scored his first goal for Barnsley in a 2-1 win against Nottingham Forest on 15 August 2017.
After appearing once in the England U18, Pearson was called up by England C in September 2013. Pearson made his England C debut against Latvia U23 and played the whole game and almost scored, in a 1–0 defeat. After the match, Pearson reflected on his England C debut, stating it was a great experience and hope he can have that chance again.As of match played 29 October 2016.