In Milan, Cavendish won the 165k stage after being helped by Boasson Hagen who celebrates his 22nd birthday today.
Garmin and Team Colombia battled it out before Hagen led out Cavendish who ent with a kilometre to go and beat Australian Allan Davis, American Tyler Farrar, Australian Matthew Goss and Italian Alessandro Petacchi hit the tape first and make it three wins for Team Colombia in three days.
Britain's Ben Swift finished 12th.
Danilo Di Luca leads the General Classification.