Raised in Oderzo, Zigoni started playing football with local team Opitergina, before joining Treviso's youth system, where he scored more than one hundred goals. He made his professional debut with the club in a Serie B game against Ancona on 26 January 2009, aged 17. The match ended in a 2–1 loss for Treviso, with Zigoni scoring their lone goal. He scored his second goal only four days later, in a 3–2 win against Brescia. The young striker went on to make a total of 18 appearances for Treviso in the 2008–09 season, being included 8 times in the starting line-up.
Coming to the attention of several Serie A clubs, such Fiorentina, Internazionale and Juventus, Zigoni was eventually signed by Milan at the beginning of the 2009–10 season, for €1.3 million. He became a regular of their youth team, scoring a total of 19 goals in league and cup games. In particular, he scored in both legs of the Coppa Italia Primavera final, as Milan defeated Palermo 3–1 on aggregate to lift the trophy 25 years after the club's last success in the competition. As for the first team, Zigoni made only one appearance during the season. He came off the bench in the final minutes of a league game against Lazio, which ended in 1–1 draw, on 28 March 2010.
In July 2010, Zigoni was transferred to Genoa in co-ownership for €3.75 million, as part of the deal that saw defender Sokratis Papastathopoulos join Milan. With the youth team of his new club Zigoni scored two goals in the Supercoppa Primavera, as Genoa defeated 5–0 his former Milan teammates to secure the trophy. However, he failed to get any first-team appearances in his first months at the club. Subsequently, on 29 January 2011, Zigoni was sent out on loan to Serie B club Frosinone. In his short stint with the club, he made a mere six appearance with a single goal, and Frosinone ended being relegated to the third tier at the end of the season.
Milan return and loans
On 24 May 2011, Milan re-acquired the second half of Zigoni from Genoa for the same fee, before being sent on loan to Avellino for the season. Next season he was sent on another loan spell to Serie B club Pro Vercelli. However, during the January transfer window he was called back and sent on a second loan spell to Avellino. Avellino promoted to Serie B at the end of season. On 29 July 2013 he was signed by Italian third division club U.S. Lecce, re-joining teammate Giacomo Beretta and Marcus Diniz. Next season, he moved to Monza, once again on loan. On 8 January 2015 Zigoni was released by Monza. He was signed by SPAL on loan. The loan was extended on 13 July 2015, and again on 15 July 2016.
Venezia
On 10 August 2017, Zigoni was signed by Serie B side Venezia, on a season-long loan deal with an obligation to buy.
International career
Zigoni won his first international cap in February 2009, shortly after his debut in Serie B with Treviso, being called up by Italy U-20 for a game against Austria. Italy lost 2–1, with Zigoni himself scoring their lone goal. Zigoni went on to be selected also at under-18 and under-19 level, being capped a total of 10 times and scoring 5 goals. Among the 5 goals, 3 of them was from 3 substitute appearances in 2010 UEFA European Under-19 Football Championship qualification. However Zigoni was dropped out from the squad for the elite round and the final tournament as the team already had Mattia Destro, Fabio Borini and Nicolao Dumitru as centre forwards.