Andrea Guardini edged out favorite Mark Cavendish in a bunch sprint to win the 18th stage of the Giro d'Italia Thursday as Joaquin Rodriguez kept his grip on the overall lead. Guardini, who finished last in the previous stage, timed his sprint to perfection to win in 3 hours, 52 seconds. Cavendish could not keep up with the Italian at the end of the mainly flat and descending 149-km route from San Vito di Cadore to Vedelago. Rodriguez maintains his 30 second lead over Ryder Hesjedal in the overall standings. Friday's 19th stage is the penultimate mountain ride. The Giro ends on May 27 in Milan.