Jari-Matti Latvala (Ford) kept his advantage despite a late puncture to win rally Sweden ahead of Mikko Hirvonen (Citroën) and Mads Ostberg (Ford).