It is the first time someone has received jail time for football hooliganism in Switzerland, Swiss media reported.
The 24-year-old from Appenzell must also pay a fine, as well as 12,000 francs damages to his victim, the Swiss federal criminal court in Bellinzona decided.
The events date from a match between FC St Gallen and FC Lucerne at the Lucerne stadium in February 2016.
Footage from surveillance cameras at the match proved that the Appenzell man threw at least four pyrotechnics on to the field during the match.
His actions seriously injured a man in his late 40s who suffered hearing damage and later had to be operated on.
In court, the defendant's lawyer pleaded for an acquittal, claiming that the accused took precautions before throwing his missiles.
However the court in Bellinzona sided more with the prosecution, which had requested a jail term of four years.
Speaking to Blick, the head of the Swiss football league, Claudius Schäfer, said he was satisfied with the judgement and praised the cooperation between the league, the two football clubs and the authorities, which helped lead to the conviction.
He hoped the verdict would “have a preventative effect”, he said.
Until now those who throw firecrackers in stadiums have been hard to prosecute because identifying them has proved difficult, said the paper.