Grown up in the Empoliyouth system, Balli spent his early professional years with several Serie C1 and Serie C2 teams before to return to Empoli as a reserve keeper in 1992. In 1994, he finally managed to become the first choice for the Tuscan team, being instrumental in two consecutive promotions from Serie C1 to Serie A. In 1997, he joined Salernitana, obtaining a personal third consecutive promotion with the Campanian side, and playing with them also in the following season, the first in the Italian top flight for Balli. In 1999, following Salernitana's relegation back to Serie B, he joined ambitious Umbrian Serie B club Ternana, playing more than sixty games in two seasons for the rossoverdi. In 2001, he returned to Tuscany, joining Pistoiese, who then were relegated to Serie C1 that season. Now without a team, 35-year-old Balli returned into active football only in January 2003, joining Serie C2 club Nocerina. In September 2003 he then made a comeback to Empoli, in search for an experienced goalkeeper, thus returning to play into Serie A as second choice behind former Italian internationalLuca Bucci. In the following 2004–05 season, now in Serie B, Balli then returned to play football regularly and helped his side to win a prompt return to the Italian Serie A. In 2005–06 he played less regularly, also because of the presence of other keepers such as Gianluca Berti and Sebastián Cejas. The following two seasons saw Balli being sided by youngster Davide Bassi for the first choice goalie role. He was released in June 2008, after Empoli went relegated to Serie B. On 13 February 2009 41-year-old Balli accepted to join Serie B club Pisa until the end of the 2008–09 season, going on the bench for the 14 Februarylocal derby against Livorno. However, on 21 February, eight days after his signing, Pisa announced to have parted company with Balli under player's request, citing the veteran goalie's doubts regarding his fitness conditions as being the main reason for this choice.