ST. LOUIS — Odubel Herrera has been finding his way on base all season for the Phillies.

On Saturday, he propelled them to a win with a homer and three RBIs in Philadelphia's 7-6 win over the St. Louis Cardinals.

"I'm feeling good, feeling comfortable," Herrera said. "Just being part of the team and being part of the win."

He extended his streak of reaching base to 45 consecutive games with his third inning home run.

Jorge Alfaro pinch hit for Andrew Knapp in the eighth inning and knocked a single up the middle to drive in Scott Kingery for the game-winning run. Alfaro was scratched with right knee soreness after originally being in the lineup. He was removed from Friday night's game with soreness in the knee.

Greg Holland (0-2) surrendered two runs on two hits and a walk while getting just two outs.

"I felt like I've spun the ball well here recently," Holland said. "It's just putting together 15 good pitches in a row has kind of eluded me."

Tommy Hunter (1-0) was initially in line for the loss after allowing an RBI double to Matt Carpenter in the seventh inning. Carpenter drove in Tommy Pham with a double off Hunter to give the Cardinals a 6-5 lead in the seventh inning.

Seranthony Dominguez pitched two perfect innings for his first career save.

"Seranthony was tremendous in the eighth and ninth," Philadelphia manager Gabe Kapler said. "We thought that was the right spot for him."

The Phillies surrendered a pair of leads before breaking through for good in the eighth inning to put themselves in position to win their first series against the Cardinals since August 22-24, 2014.

"In many ways that's felt like the biggest win of the year for us," Kapler said. "I thought all of our guys did a great job, specifically giving a lot of credit how we came back during the delay. It takes mental toughness to come back after that and be as strong as we were."

Tyler O'Neill tied the game 5-5 when he hit his first career home run off Luis Garcia in the sixth inning.

"I think that's the first time that I've smiled hitting a home run in a long time," O'Neill said. "Just 42,000 plus backing you, it's a great feeling."

Zach Eflin surrendered four runs on three hits in 4 2/3 innings before departing after a 44-minute rain delay.

John Gant allowed five runs on four hits in 4 1/3 innings. He struck out seven and walked two.

"I think we gave a few away," Cardinals manager Mike Matheny said. "That's a game we've got to have. I thought Gant kept us in the game. The offence came in and did a real nice job making things happen. A couple plays that didn't happen, we know guys can make them."

POWER SURGE:

Herrera's home run gives the Phillies home runs in 14 consecutive games. That is the longest active streak in Major League Baseball and four shy of the club record of 18 set from Sept. 3-22, 2008.

TRAINERS ROOM

Phillies: RHP Victor Arano (right rotator cuff strain) was activated from the 10-day DL and RHP Yacksel Rios was optioned to Triple-A Lehigh Valley.

Cardinals: RHP Alex Reyes (elbow surgery) was transferred in his rehab from Single-A Peoria to Springfield and will start for the Double-A club Saturday night. LHP Tyler Lyons (mid back strain) will also make a rehab appearance Saturday night at Springfield

UP NEXT

Phillies RHP Aaron Nola (6-1, 1.99 ERA) will finish out a four-game series against the Cardinals on Sunday. Nola is 2-1 with a 1.86 ERA in three career starts against St. Louis, who counters with RHP Jack Flaherty (0-1, 2.87 ERA). Flaherty is making his first career start against Philadelphia.

___

More AP baseball: https://apnews.com/tag/MLBbaseball