Fabio Fognini saved three match points en route to winning the German Open in Hamburg and claim his second ATP Tour title in eight days.