Smallwood's natural position is the holding role in the centre of midfield. He is a product of the Middlesbrough Academy and later became captain of the reserve team. At the start of the 2009–10 season, Smallwood signed his first professional contract with the club. Smallwood made his debut for Middlesbrough on 19 October 2010 in a 1–0 away defeat to Nottingham Forest. In January 2011, Smallwood signed an 18-month contract with the club. On 2 May 2011, Smallwood scored his first goal for the club in a 3–0 win against Cardiff City. On 3 November 2012, he scored his second league goal in a 4–1 win away to Charlton Athletic. However, in the 2013–14 season, Smallwood lost his first team place following new arrivals. Under the management of Aitor Karanka, Smallwood was among the players to be offloaded as part of Karanka's plans to reduce the squad size.
On 23 January2014, Smallwood joined Rotherham United on loan for the remainder of the 2013–14 season. Shortly after arriving at Rotherham United, Smallwood quickly went straight into the first team; he was sent-off for a late challenge on Billy Knott, as Rotherham United beat Port Vale 1–0 on 21 August 2014. As a result of the challenge, Smallwood had to serve a three-match suspension, missing the last two games of the season and one match in the play-offs. Smallwood scored the winning penalty in the shoot-out after taking the fifth penalty to win it as Rotherham secured promotion with a penalty shoot-out victory against Leyton Orient. After the match, Smallwood said it was the first time he had taken a penalty in his professional career. As a result of his good performance at Rotherham United, the club made a bid to sign Smallwood in early July, only to be rejected by Middlesbrough. Initially signed in an emergency loan deal, Smallwood signed for Rotherham United on a permanent basis after Middlesbrough accepted a £175,000 bid for him. Smallwood scored his first ever goal for Rotherham United in their 3–3 home draw with Derby County with a free-kick from the edge of the area. On 31 August 2016, new Rotherham United manager Alan Stubbs sent Smallwood out on a season long loan to Scunthorpe United for the last year of his contract. With Stubbs no longer at the club, agreement was reached to terminate the loan on 9 January 2017. Smallwood scored one goal for Scunthorpe during his loan, the final goal in a 4–0 home defeat of Southend United on 10 September 2016. Smallwood elected to leave Rotherham United at the end of his contract, turning down an extension offered by the club.
Smallwood signed a two-year contract with Blackburn Rovers on 20 June 2017. He scored his first goal for Blackburn in a 3–1 EFL Cup win against Coventry City on 8 August 2017.