The title was the 33-year-old Swiss world number two's fourth of the season after Brisbane, Dubai and Istanbul, and 86th of his career.
It was also Federer's 15th career title on grass, coming just over a week away from Wimbledon, where he will be bidding to win an eighth time.
Federer's only defeats in Halle finals came against Australia's Lleyton Hewitt in 2010 and German Tommy Haas two years later.
It was far from plain-sailing for Federer in his 130th career final against an opponent he'd beaten 11 times out of 12 previous meetings.
Three times he had to save a break point in the opening set, which was briefly interrupted by rain, twice doing so with aces before sealing the first stanza courtesy of a Seppi double fault.
Federer could have wrapped up the second set a game earlier but missed three break opportunities when leading 4-3.
However, two games later he did break the Italian to claim victory in one hour, 48 minutes.