Giacomo Nizzolo of Italy finished second in the bunch sprint that decided the 254-kilometre stage from Busseto to Cherasco, the longest of this year's race. Slovenia's Luka Mezgec was third.
Italy's Vincenzo NIbali remains in the overall lead on a day when 2012 winner Ryder Hesjedal of Canada and pre-race favourite Bradley Wiggins both failed to start the stage because of illness.
STAGE RESULTS
1. Mark Cavendish (Britain / Omega Pharma - Quick-Step) 6:09:55"
2. Giacomo Nizzolo (Italy / RadioShack) ST
3. Luka Mezgec (Slovenia / Argos)
4. Brett Lancaster (Australia / Orica)
5. Elia Viviani (Italy / Cannondale)
6. Manuel Belletti (Italy / AG2R)
7. Daniele Bennati (Italy / Saxo - Tinkoff)
8. Filippo Pozzato (Italy / Lampre)
9. Anthony Roux (France / FDJ)
10. Miguel Angel Rubiano (Colombia / Androni Giocattoli)
OVERALL STANDINGS
1. Vincenzo Nibali (Italy / Astana) 52:38:09"
2. Cadel Evans (Australia / BMC Racing) +41"
3. Rigoberto Uran (Colombia / Team Sky) +2:04"
4. Robert Gesink (Netherlands / Blanco) +2:12"
5. Michele Scarponi (Italy / Lampre) +2:13"
6. Mauro Santambrogio (Italy / Vini Fantini) +2:55"
7. Przemyslaw Niemiec (Poland / Lampre) +3:35"
8. Benat Intxausti (Spain / Movistar) +4:05"
9. Domenico Pozzovivo (Italy / AG2R) +4:17"
10. Rafal Majka (Poland / Saxo - Tinkoff) +4:21"