In 2012, Mavila joined the academy of Premier League side West Ham United. After completing his two-year scholarship, Mavila signed his first professional contract with West Ham in 2014.
2014–15
On 15 January 2015, Mavila was sent on a one-month loan to Football Conference North side Wealdstone after playing only 65 minutes for West Ham's U-21s that season. On 17 January 2015, he made his senior debut as a starter in a 4–2 win over Chelmsford City. His loan was subsequently extended for an additional month and Mavila went on to make a total of eight appearances for Wealdstone that season.
2015–16
On 6 August 2018, Mavila was named to the West Ham 18 for the first time, in a UEFA Europa League match against Romanian side Astra Giurgiu, but did not appear in the match. On 9 October 2015, Mavila joined National League side Aldershot Town on a one-month loan as a replacement for previous loan player Nick Anderton. He appeared on the bench for Aldershot on five occasions, but failed to make an appearance. On 10 March 2016, Mavila rejoined Wealdstone until the end of the season and made ten appearances, including three starts. At the end of the season, Mavila was released by West Ham. In April 2016, Mavila went on trial with Italian Serie B side Perugia. He later spent time on trial with several different league clubs in England, including League One side Charlton Athletic.
On 3 September 2016, Mavila signed with National League side Maidstone United. He made six league appearances for the Stones before being released in October of that year.
On 5 December 2016, Mavila signed for Southern Football League side Cambridge City. In early January, Mavila left the club after having difficulties commuting to matches from his home in London. Mavila received the Black Youth Awards Achievements Sportsman Of The Year in December 2016.
Third spell at Wealdstone
On 4 January 2017, Mavila rejoined Wealdstone on a permanent basis until the end of the season. He made thirteen league appearances that season, including five starts, and had another two substitute appearances in the FA Trophy.
On 9 February 2018, Mavila joined National League side Leyton Orient until the end of the season. He was released at the end of the season without making an appearance for the club.
In January 2019, mavila signed with National League North side Dulwich Hamlet. While at Dulwich, he made five league appearances, all of which were starts.
Cavalry FC
On 20 February 2019, Mavila made his first move overseas, signing with Canadian Premier League side Cavalry FC, where he reunited with former West Ham United U-21 teammate Jordan Brown. On 8 May 2019, Mavila made his professional debut as a starter in a 1–0 win over Valour FC. That season, he made 23 league appearances, seven in the Canadian Championship and played both legs of the Canadian Premier League Finals. On 12 February 2020, Mavila re-signed with Cavalry for the 2020 season.