Born in Saronno, the Province of Varese, Lombardy, Sala started his professional career at Pro Patria, located in Busto Arsizio, also in the Province of Varese. Sala had played for Pro Patria since ca.2005, for the Giovanissimi team. Sala made his professional debut during 2010–11 Lega Pro Seconda Divisione. That season Luca Anania was the starting keeper and Matteo Andreoletti was the second keeper, while Sala was a player of Berretti reserve team. However Sala also played in the round 12, replacing Matteo Serafini after Anania was sent off. Sala also played in the next round.
Internazionale
In July 2011 F.C. Internazionale Milano borrowed Sala from Pro Patria for its Primavera under-20 team. The team was short of keepers, as in June 2011Francesco Bardi was graduated from Inter "spring" while Alberto Gallinetta was transferred to Parma. Initially Sala would compete with Raffaele Di Gennaro for the first choice, who missed most of the 2010–11 season due to injury. However Sala was also injured. Coach Andrea Stramaccioni used overage player Paolo Tornaghi as well as borrowed Riccardo Melgrati and Matteo Cincilla from Inter's Berretti under-18 team. Di Gennaro also played twice in the group stage of NextGen series and once in the cup after he recovered. On 14 January 2012, the first league match after the winter break, Sala became the first choice while Di Gennaro was on the bench, winning against Cittadella 4–1. However it was reversed in the next match, the rescheduled week 4 fixture. He was also able to play once more against Brescia, the match between the NextGen series and Torneo di Viareggio, where Di Gennaro was the first choice in those tournaments. Sala played again in round 20, the match after the rescheduled round 18 on 7 March, as well as round 21, the match before the NextGen semi-finals. After Di Gennaro joined the first team as fourth keeper, Sala collected his fifth appearances and the first under Daniele Bernazzani, a 0–1 loss to Chievo on 31 March, the fifth loss of Inter in the reserve league. However Sala was rested again in week 24. That mid-week fixture Di Gennaro played his sixth match and once again out-numbered Sala. However Sala once again played on 7 April against bottom club Vicenza as Di Gennaro once again joined the first team. Sala was the backup again in round 25 and 26. In total, Sala played 6 times, Di Gennaro 8 times, Tornaghi 7 times and both 3 games for Melgrati and Cincilla. In the playoffs, Sala was the backup of Di Gennaro. However, in the second match, Di Gennaro was injured during the match. Sala replaced him in 69th minute and played the whole extra time. He conceded 2 goals but Inter striker Samuele Longo also scored twice in extra time and beat Milan 4–3. In the final Sala conceded 2 goals but the strikers also scored 3 goals to win the league.
Pro Patria return
Sala returned to Pro Patria and went to pre-season camp in July 2012.
In 2013, he was signed by Serie B club Ternana in a temporary deal. On 1 July 2014, Sala was signed by Serie C club Reggiana. On 25 July 2014 Sala returned to Serie B for Ternana in a temporary deal, for a reported €100,000 loan fee, with an obligation to sign. Sala signed a 1+2 year contract. He was the understudy of Alberto Brignoli and Luca Mazzoni.
Rimini
On 20 August 2019 he joined Rimini on a one-year contract with an option for the second year.