Movistar sprinter Ventoso beat Italians Fabio Felline (Androni Giocatolli) and Giocomo Nizzolo (RadioShack Nissan) to take the second Giro stage win of his career after a dramatic finale to the 166km stage from San Giorgio del Sannio.
With both world champion Cavendish (Team Sky) and red points jersey Goss (Orica GreenEdge) well placed in the pack after a punchy climb 4km from the finish, Australian Goss overshot the final bend and collided with Italian Filippo Pozzato (Farnese Vini) as both riders went down heavily.
Cavendish was caught up in the debris – and although the double stage winner did not go down hard, his chances of completing a Giro treble were left in tatters.
Canada’s Ryder Hesjedal (Garmin-Barracuda) kept out of trouble to retain his pink jersey. Hesjedal is nine seconds clear of Spaniard Joaquim Rodriguez (Katusha), who saw an opportune attack inside the last 6km thwarted by the peloton.
Having started under grey clouds and drizzle, the stage was sparked into life by a three-man break after 19km on the road.
Over long, straight and undulating roads, Pierre Cazaux (Euskaltel), Brian Bulgac (Lotto Belisol) and Martijn Keizer (Vacansoleil-DCM) built up a maximum lead of 4:10 before both Bulgac and Cazaux sat up as the peloton closed in, 30km from the finish.
Dutchman Keizer gave it his all before bring swept up himself inside the final 20km. A series of attacks came thick and fast on a hilly climax to the stage, the most notable of which saw Rodriguez carve out a small gap on the front.
With the Spaniard just nine seconds down on the GC, the Garmin team-mates of maglia rosa Hesjedal led the chase as the Katusha climber was reeled in with 5km remaining.
Lotto Belisol’s Adam Hansen had a solo pop inside the final two kilometres but the race came back together by the time the riders passed under the banner marking the final kilometre.
Goss, the winner of stage three in Horsens, was expertly guided to the front of the pack by two GreenEdge team-mates, but the 25-year-old Tasmanian was overeager in the final, tight horse-shoe bend just 300m from the finish.
Breaking heavily, Goss was rammed from behind by Pozzato with both riders falling heavily. In the chaos that ensued, Cavendish was forced wide, narrowly missing the barriers before being upended on his side.
With the vast majority of the peloton held up by the melee, 30-year-old Ventoso powered to victory ahead of Felline and Nizzolo, with another Italian, the white jersey Damiano Caruso (Liquigas), taking fourth.
The Giro d’Italia continues on Tuesday with the 186km stage 10 from Civitavecchia to Assisi, which includes a number of tricky uncategorised climbs before a nasty ramp to the finish.