The Argentinian had started the championship match strongly, breaking Fognini and winning the first three games on the bounce.
But as Fognini began settling into the match, his opponent began to struggle, even on his usually reliable forehand.
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.
Murray defends Olympic title in emotional win over Del Potro in 2016
In Washington, Alex de Minaur saved four match points before going on to win his semi-final at the Citi Open.
The Australian was on the brink of crashing out to 20-year-old Andrey Rublev, but turned a second set tiebreak around on his way to securing his spot in the final.
De Minaur, 19, also survived being broken twice in the decider before sealing a 5-7 7-6 (8/6) 6-4 win.
He will face top seed Alexander Zverev in the final, following the German’s defeat of Stefanos Tsitsipas.
The 21-year-old defending champion did not face a single break point as he overcame his Greek opponent 6-2 6-4 in an hour and 28 minutes.
Meanwhile, qualifier Martin Klizan beat Denis Istomin 6-2 6-2 to win the Austrian Open in Kitzbuhel.
The Slovakian won 78 per cent of first serve points and converted each of his four break point opportunities.
ATP Monte Carlo
Sinner, Musetti lead Italian tennis into exciting new era
Highlights: Del Potro beats Nadal in astonishing semi-final at Rio 2016