Points classification leader Peter Sagan (Cannondale) placed second, with John Degenkolb (Giant-Shimano) in third.
Cavendish fell to the ground after another rider crashed directly in front of him on the first of two hairpin bends in the finale of the stage in Buren an der Aare. It appeared from overhead footage that Danny Van Poppel (Trek Factory Racing) had nudged Matt Goss (Orica-GreenEdge) sideways into Cavendish’s path.
After dusting himself down, Cavendish got back on his bike and rolled over the line, with blood seeping through the right shoulder of his British national champion’s jersey.
During the stage, Omega Pharma-QuickStep manager Patrick Lefevre had aired his concerns via Twitter about the succession of corners toward the finish.
There was no change to the general classification, with Tony Martin (Omega Pharma-QuickStep) retaining his position at the top of the table ahead of Tom Dumoulin (Giant-Shimano).
At the start of the stage, Sander Armee (Lotto-Belisol), Jaroslaw Marycz (CCC Polsat) and Frederik Veuchelen (Wanty Groupe Gobert) formed the day’s break. Inevitably, the trio were reeled in with around 10 kilometres to go as the sprinters’ teams wound up the pace.
Bradley Wiggins (Sky) was a non-starter after withdrawing from the race due to a knee injury sustained as a result of a crash on stage four.
The 2014 Tour de Suisse concludes on Sunday, June 22.
Tour de Suisse 2014, stage five: Ossingen to Buren an der Aare, 184km
1. Sacha Modolo (Ita) Lampre-Merida in 4-08-06
2. Peter Sagan (Svk) Cannondale
3. John Degenkolb (Ger) Giant-Shimano
4. Alexander Kristoff (Nor) Katusha
5. Jose Joaquin Rojas (Spa) Movistar all same time
Overall classification after stage five
1. Tony Martin (Ger) Omega Phrma-QuickStep in 18-27-47
2. Tom Dumoulin (Ned) Giant-Shimano at 6 secs
3. Peter Sagan (Svk) Cannondale at 10 secs
4. Bauke Mollema (Ned) Belkin at 17 secs
5. Tom Jelte Slagter (Ned) Garmin-Sharp at 23 secs
6. Davide Formolo (Ita) Cannondale at 27 secs
7. Jon Izaguirre (Spa) Movistar at 27 secs
8. Roman Kreuziger (Cze) Tinkoff-Saxo at 28 secs
9. Mathias Frank (Swi) IAM Cycling at 29 secs
10. Mattia Cattaneo (Ita) Lampre-Merida at 29 secs
Bradley Wiggins a non-starter on stage five of the Tour de Suisse after crashing during Tuesday's stage
Mark Cavendish wins tough finale to take stage win in Tour de Suisse; Tony Martin retains overall lead