Born in Camberley, Saville came through the Chelsea Academy, having been there since 2004, when Brendan Rodgers came to Chelsea from Reading. His older brother Jack also joined Chelsea. He was part of the Chelsea reserve side that won the FA Youth Cup in 2010, having first played at that level on 23 March 2010 in a 2–1 Premier Reserve League South defeat against Fulham. In July 2010 he signed his first professional contract but only featured in reserve team action, winning the 2010–11 Premier Reserve League after a play-off victory over Blackburn. He signed a new three-and-a-half-year contract in January 2012, and ended the year with his first involvement with the first team: Appearing as an unused substitute in two League Cup ties and also during the Club World Cup in Japan. In February 2013, Saville joined Championship side Millwall on a loan deal until the end of the season. Here, he made his senior debut on 2 March against Leeds United. He made two further appearances for the Lions during this spell. During the close season, Saville was again loaned out, this time joining League One club Brentford until 5 January 2014. He made his Brentford debut on the opening day of the 2013–14 season in a 1–1 draw at Port Vale. and scored his first senior goal on 19 October, in a 3–1 victory over Colchester United. With Brentford chasing promotion, Saville's performances saw new manager Mark Warburton extend the loan until the end of the season. His performance against promotion rivals Leyton Orient on 15 March garnered him the man of the match award and a place in the Football League Team of the Week. By the end of the season, Saville had made 44 appearances and scored four goals to help Brentford win automatic promotion to the Championship.
On 26 August 2014, Saville left Chelsea to join with Championship side Wolverhampton Wanderers on a permanent transfer having never made an appearance for the Blues' first team. He signed a three-year deal for an undisclosed fee. Here, he reunited with manager Kenny Jackett who gave Saville his senior debut while at Millwall. Saville made his club debut on 30 August 2014 as a substitute in a 3–1 win against Blackburn. On 14 January 2015, having largely fallen out of Wolves' first team involvement, Saville was moved on a 93-day loan to League One side Bristol City. Saville made his Bristol City debut against Scunthorpe United on 17 January. He scored his first goal for Bristol City versus Yeovil Town on 10 March. His final appearance at the club came against Bradford City on 14 April, a match his side won 0–6. In total, he made eight appearances, scoring once, for Bristol City before returning to his parent club. After making two League Cup appearances for Wolves in the early season, Saville again went out on loan. On 6 October, he rejoined Millwall on a 28-day emergency loan. He returned to his parent club to end the season with five goals – his best goalscoring tally to date – from 21 appearances. The following season saw Saville regularly involved under the management of Paul Lambert, ending with a total of 29 appearances in all competitions. Although the club activated the option of a further year on his contract at the conclusion of the campaign, he would not play for them again.
Millwall
On 26 June 2017, Saville joined his former loan club Millwall on a permanent three-year deal for an undisclosed fee. He scored his first goal for Millwall in a 1–1 draw with Bolton Wanderers on 12 August 2017. He scored 10 goals for Millwall from midfield during the 2017/18 season, finishing joint top scorer with Lee Gregory, helping them narrowly missed out on the playoff positions by finishing 8th.
Middlesbrough
On 31 August 2018, Saville joined fellow Championship club Middlesbrough on loan until January 2019, to join the club on a permanent deal at the conclusion of the loan spell, for a reported transfer fee of £8 million. After returning from the international break with Northern Ireland, Saville made his first official appearance for his new side on 15 September, coming on a substitute for fellow newly signed midfielder Muhamed Besic, in their unfortunate close 1–0 defeat to Norwich City. He made his first start for the Smoggies in their following fixture four days later against Bolton Wanderers, which saw Saville score his first goal for the club in their 2–0 success, before being substituted off later on in the match, with Besic coming on to finish off the game.
International career
In September 2017 he was called up to the senior Northern Ireland squad for 2018 FIFA World Cup qualifiers against Germany and Norway. Saville was eligible for Northern Ireland through his grandmother who was from Enniskillen He made his debut in a 1–3 loss against Germany on 5 October 2017, coming on in the 80th minute of the match.
Style of play
Saville is a box-to-box midfielder, known for his energy, he also can play in a False 10 position. He was also used in an unfamiliar left back position at times during his spell at Wolverhampton Wanderers.