The British Team Sky rider raced away on the summit finish in Prati di Tivo to win by six seconds from Mauro Santambrogio (Vini Fantini-Selle Italia), with Astana’s Vincenzo Nibali and Omega Pharma-Quick Step’s Kwiatkowski following at 11 and 13 seconds respectively.
Froome was 34 seconds behind leader Mark Cavendish at the start of the 173km stage from Narni.
After several days of rain the weather was pleasant for the riders and an early break formed after just two kilometres - Fredrik Kessiakoff (Astana), Anthony Roux (FDJ), Tomasz Marczynski (Vacansoleil-DCM) and Francesco Failli (Vini Fantini-Selle Italia).
Failli boosted his King of the Mountains hopes by leading the way over two summits while the gap to the peloton peaked at 6:45.
The gap was quickly cut on the descent following the second of them, the Passo delle Capannelle, and as the riders approached the final 14.5km climb to the ski resort of Prati di Tivo first Failli was dropped then Kessiakoff and Roux.
With Cavendish easing up behind the peloton, Marczynski was left all alone at the front. His 45s lead with 9km to go disappeared within the following kilometre, as Sky set a monstrous pace in the main group.
Alberto Contador (Saxo-Tinkoff), Nibali and Santambrogio all looked to attack up the climb but Froome’s Sky colleagues would not allow them to ride away.
“I have a lot of faith in my teammates: [Rigoberto] Uran, Sergio [Henao] and Dario Cataldo,” Froome said. “They all did great work today and when they are like that, my job becomes much easier.
“They all helped me to be up there in the finale and fresher than everyone else.”
But it was Froome’s ferocious late attack which ate up the 40m to the leading trio, catching Nibali and Contador with 800m to go before accelerating away for the win.
With the chasing group stretched, several riders lost chunks of time to Froome, who is now well-placed with three stages to race.