The Team Sky rider closed the gap on new general classification leader Michal Kwiatkowski (Omega Pharma - Quick-Step) to four seconds as he attacked decisively in the final kilometre of the 173km course.
The Briton came home six seconds ahead of Mauro Santambrogio (Vini Fantini - Selle Italia), with Vincenzo Nibali (Astana Pro Team) third.
Poland's Kwiatkowski finished fourth to take the race leader's Banca Mediolanum Blue Jersey.
Froome's team-mates Dario Cataldo, Sergio Henao and Rigoberto Uran dictated the race all the way up the final climb to give him the perfect platform to break away.
"My team did great work. They all helped me to be up there in the finale and fresher than everyone else," Froome was quoted as saying by cyclingnews.com.
Kwiatkowski's team-mate Mark Cavendish (IOM), the previous race leader, was not suited to the mountain stage and tumbled down the general classification standings.
Froome added: "I'm really happy with that victory, it was a really good day for us.
"I only ended up doing a kilometre in the wind myself. It really was an armchair ride. To have the guys there who were with me on the climb - Rigo, Sergio and Dario - to have them pulling for me when guys like Nibali and (Alberto) Contador are attacking is a really good feeling.
"I think everyone was hurting up at the top there. I had a little bit left to go in that last K and that was down to the work that was done by the rest of the guys during the day.
"It's going to be a tough fight. Kwiatkowski is maybe a surprise leader but he's definitely shown that he's got the form to be up there in that leadership position. It's going to be hard to prize that off him but we'll take it one day at a time and do everything that we can."