SAN FRANCISCO — A year ago, Dereck Rodriguez was down in Double-A ball, a converted outfielder hoping to take a new path as a pitcher.
A non-roster invite to spring training, Rodriguez finally got the call to the majors in late May.
Since then, he's sparkled.
Rodriguez threw seven innings of two-hit ball to continue his fine rookie season and San Francisco beat the Pittsburgh Pirates 4-3 on Sunday.
"He finds a way," Giants manager Bruce Bochy said. "He's just been so consistent getting us deep in the game. What a job he's done since he's come up. It's a great story."
Rodriguez (6-1) faced three batters over the minimum, allowing one run with four strikeouts and a walk. Both hits off him came in the second inning.
The 26-year-old righty has a 2.25 ERA, lowest among NL rookies.
"He stayed off the barrel," Pirates manager Clint Hurdle said. "I didn't think we got caught up in overswinging at all. We were trying to square him up, trying to hit it hard where he pitched it. We were unable to do a whole lot of that."
Rodriguez has been San Francisco's most consistent pitcher this season. He is tied for the team lead in wins and has allowed two runs or fewer in each of his last eight starts.
"After every start I sit back and look at what's been happening the last couple of months," Rodriguez said. "From where I was this time last year to where I'm at this year, it's a big change."
With five consecutive wins, Bochy believes Rodriguez deserves to be in the discussion for rookie of the year.
"You look at how consistent he's been, you look at the numbers, without question he has to be in that talk and consideration," Bochy said. "He's doing all he can do and more than we thought. We knew he would be pretty good but he's even exceeded that."
Nick Hundley and Joe Panik each drove in two runs for the Giant and Gorkys Hernandez scored twice.
Starling Marte had a two-run double for the Pirates.
The Giants went 2-4 on their six-game homestand largely because their bullpen failed to hold two late leads against Houston, including one that cost Rodriguez a chance to win.
It nearly happened again.
Pittsburgh scored twice on Marte's two-out double off reliever Reyes Moronta in the eighth, but Tony Watson retired Gregory Polanco with the tying run on second.
Will Smith pitched the ninth for his eighth save.
Hundley hit an RBI triple off Joe Musgrove (4-7) in the third and singled home a run in the fourth.
Musgrove allowed four runs on seven hits in six innings. He struck out six and walked one but got little run support for the third consecutive start. Pittsburgh was shut out in Musgrove's previous two starts and scored only one run while he was on the mound Sunday.
"It's not my job to worry about that," Musgrove said. "I feel like I'm continuing to throw the ball really well right now."
Pittsburgh utility player Christopher Bostick was acquired by Miami for cash. Bostick, who played in two games for the Pirates this season, was designated for assignment last week.
Pirates: C Francisco Cervelli did not start after getting hit in the facemask by a foul tip in the first inning of Saturday's game. Cervelli struck out looking as a pinch-hitter in the ninth.
Giants: RHP Hunter Strickland (fractured right hand) began a rehab assignment with Triple-A Sacramento. The reliever is eligible to come off the disabled list Aug. 18.
Pirates: RHP Jameson Taillon (9-8, 3.63 ERA) faces the Twins in Minnesota on Tuesday. Taillon is 5-1 in his previous seven road starts.
Giants: LHP Madison Bumgarner (4-4, 2.69) opposes Clayton Kershaw and the Dodgers in the opener of a three-game series in Los Angeles on Monday. Bumgarner pitched seven scoreless innings against Houston in his most recent start.