Despite all the trouble and heavy police presence, the match itself, in which FC Zurich scored twice in extra-time to beat nine-man FC Basel 2-0, was played in a half-empty Stade de Suisse.
A Reuters reporter saw FC Zurich fans letting off fireworks outside the main station after they arrived on a special train.
This was followed by a tense showdown with heavily-armed riot police as the fans, many with their faces covered, congregated in centre of the city instead of walking straight to the stadium as planned.
They eventually moved on and television and newspaper pictures showed that they left a trail of smashed shop windows and broken bottles as they walked en masse through the old town.
Some were photographed urinating in the streets and one shopkeeper told the Berner Zeitung newspaper's website that they had ransacked his property, causing 50,000 Swiss francs' (£33,700) worth of damage.
There was further trouble at the stadium when Zurich fans tried to storm one of the entrances, media reports said, while pictures showed police water cannon at the ready.
Last year's fixture produced similar scenes when Grasshoppers and FC Basel fans clashed in the centre of Berne and police used pepper spray and rubber bullets.
The match itself produced a goalless 90 minutes but Basel had defender Gaston Sauro sent off in the 66th minute for hauling back goalbound Franck Etoundi by the shirt.
Basel were controversially reduced to nine men early in extra time when Giovanni Sio was given a second yellow card for diving although replays suggested he had been genuinely fouled.
Mario Gavranovic headed Zurich in front one minute later and completed their win with a tap-in six minutes from the end of extra-time after Yassine Chikhaoui ran half the length of the pitch in a counter-attack.
Zurich fans celebrated their team's eighth Swiss Cup win by lighting dozens of firecrackers, causing a cloud of grey smoke to drift over the pitch.
- Sports & Recreation
- FC Basel
- FC Zurich