© Getty Images
The Italian failed to find any consistency on his serve, and he paid the price as Puetz broke at either end of the first set to take the opener comfortably.
Fognini's service problems continued to trouble him, but a break of his own in the fifth game of the second set handed him a crucial advantage.
The 16th seed missed the opportunity to level the scores earlier, before converting a break point for a 6-4 success.
There were improvements from both players in the third set, which was decided in an enthralling tie-break that ended with Fognini wrapping up an 8-6 success.
Both players traded breaks early in the fourth set, before Fognini pulled ahead to make it 3-1, and he fought off a determined Puetz late on to complete the win over the German.