Duvall, Jose Peraza, Scooter Gennett and Alex Blandino had two hits apiece as the Reds, who began a seven-game Western swing with a four-game sweep against the Los Angeles Dodgers, salvaged a single win in three games in San Francisco to complete a successful 5-2 trip.
Pitching for the second time since being acquired from the New York Mets last week, Harvey went four innings, allowing three runs and seven hits. He struck out five and did not walk a batter.
Harvey left with a 5-3 lead after throwing 77 pitches, but for the second straight game, did not pitch the required five innings in order to be eligible for a win. He got no decision.
Reds relievers Wandy Peralta, Jared Hughes and Raisel Iglesias shut out the Giants on five hits over five innings to retain the lead. Hughes (2-2) was credited with the win, while Iglesias notched his eighth save, allowing one hit in the ninth.
Brandon Belt accounted for one of San Francisco's runs with a home run off Harvey in the third inning, his ninth of the season.
Belt has now homered in five straight games against the Reds, becoming the first Giant to accomplish the feat against a single opponent since Barry Bonds went deep in six consecutive contests against the Padres in 2001.
The Giants also scored twice in the first inning on an Andrew McCutchen RBI double and a Pablo Sandoval sacrifice fly, getting within 4-2.
Belt's homer made it 4-3 before the Reds added single runs in the fifth and seventh innings, with Gennett's solo homer, his seventh of the season, capping the scoring in the seventh.
Gennett, the reigning National League Player of the Week, scored twice for the Reds, as did Joey Votto.
Evan Longoria had three hits, while Belt and Kelby Tomlinson added two apiece for the Giants, who out-hit the Reds 12-9.
Andrew Suarez (1-3) took the loss for the Giants, allowing five of the Reds' six runs (four earned) on eight hits in six innings. He walked one and struck out five.
--Field Level Media