Stan Szeto-USA TODAY Sports

Wilmer Flores was awarded home plate on a two-out balk called on Milwaukee Brewers reliever Jandel Gustave in the eighth inning Saturday night, giving the host San Francisco Giants what turned out to be the game-winning run in a 2-1 victory.

In a third straight nail-biter in a four-game series that began with a Brewers win in 10 innings and a Giants walk-off grand slam, San Francisco put two runners on base in the eighth against reliever Brent Suter (1-3) on one-out singles by Austin Slater and Flores.

After Darin Ruf, who had earlier homered, grounded into a fielder's choice for the second out, Gustave entered the game and promptly hit Evan Longoria, loading the bases.

Mike Yastrzemski, who hit the grand slam that ended Friday's 8-5 thriller, was then called upon to pinch hit, and fell behind 1-2 before Gustave appeared to innocently step off the slab, wanting a new sign from catcher Omar Narvaez.

But home plate umpire Pat Hoberg detected something illegal about the movement and sent Flores home for the tiebreaking run.

Reliever John Brebbia (5-1), who got out of a jam in the top of the eighth when Jonathan Davis was thrown out stealing third base for the final out, was credited with the win.

Dominic Leone, whose errant pickoff throw had put Willy Adames on second base with no outs in the ninth, retired the final three batters he faced for his second save.

Given a 1-0 lead in the sixth when Ruf hit his second homer in as many days, Giants right-hander Alex Cobb took a three-hit shutout into the eighth. But Hunter Renfroe won a nine-pitch at-bat to start the inning, lining a double over the head of center fielder Slater.

Yastrzemski momentarily bobbled a carom off the wall, and Renfroe took off for third and made it safely.

Narvaez followed five pitches later with a sacrifice fly to left field, tying the score.

Cobb was pulled at that point, charged with one unearned run on four hits. In a season-best 7 1/3 innings, he struck out five and never issued a walk.

Brewers lefty Eric Lauer went seven innings, allowing one run on two hits with three walks and four strikeouts.

More must-reads:

TODAY'S BEST
Former NBA star says Anthony Edwards becomes face of the NBA if Wolves knock off Nuggets
Rams make surprising release of former team captain
Hornets hire top Celtics assistant as next head coach
Maple Leafs fire HC Sheldon Keefe after another early playoff exit
Super Bowl champion discusses why Russell Wilson failed with Broncos
Colts LB Zaire Franklin calls out Texans, C.J. Stroud
Angels to acquire longtime Mets infielder from Braves
Giants sign former Pro Bowl wide receiver
Report reveals why the NBA did not suspend Jamal Murray
Pressure mounts on Nuggets as Nikola Jokic wins third MVP Award
Jalen Brunson shakes off injury to lift Knicks to Game 2 win
Panthers dominate Bruins to even series
LSU HC pins transfer portal struggles on reluctance to 'buy players'
Pirates announce date for 2023 No. 1 overall pick's MLB debut
Shohei Ohtani showing what would happen if he only focused on hitting
Joe Burrow shares 'support' for Bengals who requested trades
Canucks erase three-goal deficit to stun Oilers in Game 1
Watch: Pacers star ties playoff high in threes in one half
Former NFL player has major warning for Steelers QB Justin Fields: 'You can't fall into this'
Watch: Brad Marchand hurdle Panthers player on Charlie Coyle goal