CINCINNATI -- Juan Perez hasn't gotten many at-bats in the majors. He didn't need a whole lot of experience to know what was coming this time. Left-hander Tony Cingrani was going to throw a first-pitch fastball.
The young outfielder got it and hit it out.
Perez and Michael Morse homered with two outs in the sixth inning on Wednesday night, rallying the San Francisco Giants to a 3-2 victory that ended the Cincinnati Reds' longest winning streak of the season at four games.
San Francisco won for the 10th time in 13 games, improving the best record in the majors to 38-21.
Morse hit a solo shot and Perez had a two-run homer off Cingrani (2-6), who has lost all of his four starts since returning from shoulder tendinitis.
Cingrani relies on his fastball -- he threw it 81.7 percent of the time last season, second-most in the majors -- and threw one to Perez to start the game-changing at-bat. Perez, making only his fourth start this season, was ready to swing.
"I was looking for a fastball in and I got a fastball down the middle," Perez said.
Perez is in his second stint with the Giants this season. He was only 1 for 21 heading into the game on Wednesday, struggling to adapt to his limited playing time.
"He's probably had the toughest job of anybody since he's been here because he doesn't get many starts," manager Bruce Bochy said. "Their guy shut us down. He's got a good, live fastball. He was throwing very well. So Perez came through for us."
Ryan Vogelsong (4-2) extended his recent streak of solid pitching by giving up two runs and seven hits in 6 1/3 innings while fanning a career-high nine. The right-hander is 3-0 with a 2.05 ERA in last four starts.
"I just really kept doing what I was doing," Vogelsong said. "I felt the stuff was there, I just need to keep making pitches."
It was a rare win in Cincinnati for the Giants, who had lost 11 of their last 12 at Great American Ball Park during the regular season. San Francisco won all three there while taking the division playoff series in 2012.
Vogelsong gave up Todd Frazier's team-leading 11th homer in the third inning, a ball that hit the screen on the left field foul pole. Jay Bruce added a run-scoring double, his third RBI in the last two games. Bruce came into the series with no RBIs since April 25.
Sergio Romo pitched the ninth for his 18th save in 20 chances. He had allowed a run in each of his last three outings.
Billy Hamilton had three singles off Vogelsong, matching his career high. It was his sixth three-hit game.
Cingrani has been trying to get back into form after being on the disabled list for 17 days because of tenderness in the left shoulder. His velocity has been inconsistent -- the left-hander throws mostly fastballs -- while he's gone 0-4 with a 5.16 ERA in his four starts.
With Cingrani trying to hold a 2-0 lead with two outs in the sixth, Morse hit his team-leading 12th homer on the first pitch. Cingrani gave up a single by Brandon Hicks, and Perez hit his first homer of the season and the second of his career for a 3-2 lead.
It was only the fourth time in 28 career starts that Cingrani allowed more than one homer.
Hamilton ran the Giants to distraction again, but this time they prevented him from scoring. Hamilton had two infield singles among his three hits, forced two throwing errors and was caught by catcher Buster Posey while he trying to steal third base.
The Giants have seven errors in all during the two games.
LHP Madison Bumgarner (7-3) faces Mike Leake (3-4) in the final game of the series. Bumgarner is 5-0 in his last six starts, matching the longest winning streak of his career. Leake is 4-0 with a 0.92 ERA in his last four starts against the Giants. ... The Giants have scored 122 runs with two outs, the most in the majors. ... Giants OF Hunter Pence extended his hitting streak to five games. ... RHP Mat Latos made what the Reds had hoped would be his final rehab start before he's activated, but he had to leave the game for Triple-A Louisville with a cramp in his calf after only 67 pitches.
Follow Joe Kay on Twitter: http://twitter.com/apjoekay