The fourth-ranked del Potro missed a chance to win in his first event since a five-set loss to Rafael Nadal in the Wimbledon quarterfinals.
Fognini broke Del Potro twice in the opening set and twice in the second, while dropping his own serve just once throughout.
Strong returning and some risky shots helped the Italian edge ahead with a one-set lead, before he took two breaks of serve in the second to close out the match 6-4 6-2.
The world number 15 secured the eighth ATP title of his career and third in 2018, having previously won in Brazil and Sweden this year, although it was his first success on hard courts and the first time he has managed more than two tournament triumphs in a calendar year.More news: LeBron James praised by OH school district after Trump attack
More news: Brown says McLaren was 'pretty close' to signing Ricciardo
More news: 9-year-old boy’s lemonade stand robbed at gunpoint
Again sporting a freakish hairstyle that he has said was the result of a lost bet, Fognini won 61 of 108 total points (56 percent) while converting all four of his opportunities to break Del Potro, who had won the only previous tournament matchup between the pair.
Del Potro was unable to create any breathing room in the "breaker" and even needed to produce a backhand down-the-line passing shot victor to stave off a set point. The 31-year old went on to win 12 of the final 15 games of the match.
"Fabio deserved to win. We played good tennis, especially in the second set", Del Potro was quoted as saying on the ATP World Tour's Web site.
"It's unbelievable... He's one of the best players..." He also won a tournament in Acapulco.