Italian Danilo Di Luca, of the Liquigas team, grabbed the overall race leader's pink jersey after winning the fourth stage of the Giro d'Italia.
Di Luca, 31, crossed the line at the Montevergine summit after 4hr 22min 42sec following the 153km run from Salerno ahead of compatriots Riccardo Ricco and Damiano Cunego.
Mexican Julio Perez Cuapio led an attack some nine kilometres from the finish but was caught 800 metres from the line and eventually finished in 11th position, 15sec off the pace.
It was the fifth Giro stage win for Di Luca who also won here in 2001. He reclaims the pink jersey he lost to teammate Enrico Gasparotto on Monday and holds a 26-second advantage on Italian teammate Franco Pellizotti.
Gasparotto and world champion Paolo Bettini were involved in a massive crash along with former winner Cunego, one of the favourites for this year's edition, some 68km from the finish.
The pile-up involved dozens of riders in heavy rain that rendered the course very slippery. The crash split the peloton in two and Cunego needed to change his bike in order to continue.
South African rider Ian McLeod of the Francaise des Jeux team was forced out of the race after suffering a broken collarbone in the pile-up.
The 26-year-old McLeod also suffered a fall in Sunday's second stage. His withdrawal follows that of team-mate Carlos Da Cruz, leaving Francaise des Jeux with just seven riders.
Ireland's Nicolas Roche finished 167th overall, 14 minutes behind today's stage winner. He is now 142nd in the overall classification.
Thursday's fifth stage is over 173km between Teano and Frascati.