Di Luca helped to make it an Italian clean sweep on the podium
Italy's Danilo di Luca edged out compatriots Stefano Garzelli and Franco Pellizotti in an uphill finish to win the fourth stage of the Giro d'Italia.
The LPR rider and 2007 winner covered the 162km stage in a time of four hours 15 minutes and three seconds.
Lance Armstrong was 15 seconds behind, leaving the Astana star 28 seconds off the pace in the overall standings.
Sweden's Team Columbia rider Thomas Lovkvist took the leader's jersey from Alessandro Petacchi.
The stage began with a six-man break including Britain's Ian Stannard and having built up a lead of over seven minutes they split on the first climb with 50km remaining.
Colombian Maurizio Soler of the Barloworld team was looking strong with 1.5km left but after being brushed aside by the leading pack he had to settle for fourth, just ahead of former two-time champion Gilberto Simoni.
Armstrong had kept pace with the chasing pack throughout the day but just ran out of steam in the final stages.
Petacchi, 35, who did have the pink jersey after winning the second and third stages, struggled on the Croce d'Aune going into the final 50km leaving Lovkvist, 25, to take over at the top of the overall standings.
Bradley Wiggins, riding for Garmin, was the first Briton across the line in 35th position.
Di Luca and the other Italian favourites are desperate to take time from American Armstrong before the two individual time trials later in the race.
"We're trying to cut him out completely," Di Luca said. "It's tough, but we're going to try again tomorrow. It's going to be a very competitive Giro.
"This first week is very important for me, because the time trial doesn't suit me."
Spaniard Francisco Perez fared less well, falling after 11 km and was forced to quit the race with a right hand fracture.
Wednesday's action features an even more challenging mountain stage which stretches from San Martino to Alpe di Siusi.
The race finishes in Rome on 31 May.
Stage Four result:
1. Danilo Di Luca (Ita/Team LPR) 4hrs 15 mins 3secs
2. Stefano Garzelli (Ita/Acqua & Sapone) Same time
3. Franco Pellizotti (Ita/Liquigas) "
4. Mauricio Soler (Col/Barloworld) "
5. Gilberto Simoni (Ita/Diquigiovanni) "
1. Thomas Lovkvist (Swe/Columbia) 13hrs 5mins 28secs
2. Danilo Di Luca (Ita/Team LPR) +2secs
3. Michael Rogers (Aus/Columbia) +6secs
4. Yaroslav Popovych (Ukr/Astana) +26secs
5. Levi Leipheimer (US/Astana) Same time