The San Francisco Giants have snapped out of their slump in staggering fashion and it shouldn't come as a surprise that it's at the expense of the woeful Philadelphia Phillies.
The Giants look to continue pounding the Phillies in Sunday's finale of this three-game series that leads into the All-Star break.
San Francisco (45-43) is tied with Colorado for the highest batting average in the NL at .270. The Giants, though, were scuffling with a .217 mark while losing eight of nine games before taking advantage of a series with Philadelphia (29-61) and its 29th-ranked ERA of 4.82.
They've totaled 23 runs and 37 hits in winning the first two games of this series, including Saturday's 8-5 victory.
San Francisco typically flexes its offensive muscle against the Phillies, hitting .322 and averaging 6.0 runs while winning 11 of the last 14 matchups.
Matt Duffy has seven hits and four RBIs in this series after going 5 for 33 in the nine prior games. The rookie third baseman came a homer shy of the cycle Saturday.
"The door was opened for him and he's taken advantage," center fielder Angel Pagan said of Duffy, who replaced Pablo Sandoval at third this season. "He's really impressive."
Duffy's .481 average (13 for 27) against the Phillies is his highest against any opponent with at least 10 at-bats.
Buster Posey, one of four Giants going to Tuesday's All-Star Game in Cincinnati, also gets in on the act against Philadelphia with a career .380 average. He's collected five hits in this series, giving him a .404 average with 17 RBIs in the last 14 games overall.
Chris Heston (8-5, 3.51) gets the ball for San Francisco seeking to win a third straight decision. He's 3-1 with a 2.25 ERA in his last six starts after compiling a 4.29 ERA through his first 11. The rookie's recent success started with a no-hitter against the New York Mets on June 9.
The right-hander shut down the Mets again Monday, allowing three hits over 7 1-3 scoreless innings while walking four before leaving without a decision in a 3-0 loss.
"I wish I would have not walked so many people and just tighten the zone a little better," said Heston, whose nine hit batters are the most in the NL. "But other than that I thought it went pretty well."
He'll face a Phillies team on the brink of setting a franchise records for losses before the break.
They've tied the mark from 1997 by dropping 14 of the past 17 games.
Chad Billingsley (1-2, 6.67) takes the mound after allowing two runs in six innings of Tuesday's 7-2 win over the Los Angeles Dodgers. It was the right-hander's first win since April 2013 after Tommy John surgery sidelined him for 25 months.
"There were times when I thought I would never pitch again, and I didn't know how my arm was going to feel once I got back to throwing," Billingsley said. "But here I am. I'm a baseball player again, and I haven't done that a whole lot."
Billingsley will now face the Giants for the first time since a win with the Dodgers at AT&T Park on July 28, 2012. He's 2-4 with a 2.97 ERA in 12 career starts there.
He's had all kinds of trouble with Posey, Hunter Pence and Brandon Crawford, who are a combined 24 for 48 against him.