Citroen's Mikko Hirvonen won the Rally of Italy in Sardinia ahead of Russia's Evgeny Novikov and Estonia's Ott Tanak.