The Giants used a three-run seventh inning and overcame a mix-up calling on Camilo Doval to beat the Marlins, 4-3.