Giants 4, Astros 1: Carson Whisenhunt Outpitched Hunter Brown, Bryce Eldridge Hit Number Twelve, and For One Night This Looked Like a Baseball Team
Five and two-thirds of one-run ball from the kid, four unanswered runs off a Houston ace, and the fiftieth win of a season nobody enjoyed getting to.

I've spent most of this summer writing about what's wrong with the San Francisco Giants, so let me be a fair witness for one night. On Tuesday at Oracle Park they took a first-place team, handed the ball to a twenty-five-year-old left-hander carrying a six-run ERA, and beat Houston four to one. Four unanswered runs. Nine hits. No errors. A bullpen that got ten outs and didn't let a single runner past first base. Start to finish it was the cleanest nine innings this team has played in a month.

| Team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H | E |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Houston | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 5 | 2 |
| San Francisco | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | X | 4 | 9 | 0 |
The start. Carson Whisenhunt went five and two-thirds, gave up four hits and one run, walked three, struck out two and threw ninety-six pitches. On paper that's an ordinary Tuesday. In the context of his season it's the best night he has had in the major leagues. Go back through the six starts. He threw seven shutout innings at San Diego on the last day of July and looked like a rotation piece, then Texas knocked him around in a six-nothing shutout loss five days later and looked like a Triple-A arm getting found out. Nineteen earned runs in twenty-eight innings. Eighteen walks. A 6.11 ERA that isn't lying about anything.
What was different on Tuesday is that he pitched backwards when he had to. The three walks weren't fun and the sixth got away from him a little, but he never handed Houston the one big swing, and this is a Houston lineup with Yordan Alvarez hitting .322 and Isaac Paredes and Christian Walker behind him. The Astros went nought for four with runners in scoring position and left nine men on. Their entire evening was an Alvarez sacrifice fly in the second inning. That's the whole Houston night.
How we scored, which is the part I didn't see coming. Rafael Devers walked twice, because that's what Devers does now, and came around in the second on a Drew Gilbert line single to left. One-all. In the fourth, Drew Cavanaugh, the rookie catcher, twenty-eight games in, hitting .242, singled Gilbert home and then stole the first base of his major league life. In the fifth, Bryce Eldridge got a pitch from Hunter Brown and hit it to dead centre for number twelve. In the sixth, Christian Koss, who walked in hitting .167, ripped a double into left to score Cavanaugh and then jogged into third when Jeremy Peña threw the ball away for the second time in the game. Four to one, and it never felt close after that.
Read that list of names again. Gilbert, Cavanaugh, Eldridge, Koss. Not one of them was on this roster two years ago and two of them weren't on it in April. That's supposed to be the entire point of a season like 2026, and Tuesday is the first night in weeks where it looked like a point instead of an excuse. Bryce Eldridge is a twelve-homer, .775-OPS first baseman at an age when most players are still riding buses in Double-A, and he did that to one of the ten best starters in the American League.
Hunter Brown, for what it's worth. Five innings, five hits, three earned, three walks, eighty-nine pitches to get fifteen outs. He came in at 3.68 and he wasn't sharp, but the Giants also made him work, which they haven't done to good pitching since about the middle of July. Willy Adames had two hits including his twenty-fifth double and a stolen base. Osleivis Basabe had two more. Nine hits out of a lineup that has been getting six.
The one thing that hasn't changed is the thing that has cost this club about eleven wins: two for thirteen with runners in scoring position and eight men left on base. In a different game that's a loss and we've all watched roughly thirty of those. Victor Bericoto struck out three times and grounded into a double play. Jung Hoo Lee went nought for four and stranded four. There's still a lot of bad baseball buried inside a four-one win.
The bullpen, and I don't say this often. Carson Seymour got seven outs and struck out two. Reiver Sanmartin got the last one of the eighth. JT Brubaker threw seven pitches in the ninth for the save. Ten outs, nobody past first base, and not one arm had to warm up twice. After the summer this bullpen has had, after the eighth innings in San Diego, after after the tenth inning against Detroit on Sunday, that deserves to be written down somewhere.
| Pitcher | IP | H | R | ER | BB | SO | P |
|---|---|---|---|---|---|---|---|
| Hunter Brown, HOU (L) | 5.0 | 5 | 3 | 3 | 3 | 4 | 89 |
| Enyel De Los Santos, HOU | 0.2 | 2 | 1 | 1 | 0 | 0 | 11 |
| Bennett Sousa, HOU | 1.1 | 1 | 0 | 0 | 0 | 3 | 19 |
| AJ Blubaugh, HOU | 1.0 | 1 | 0 | 0 | 0 | 1 | 18 |
| Carson Whisenhunt, SF (W) | 5.2 | 4 | 1 | 1 | 3 | 2 | 96 |
| Carson Seymour, SF | 2.0 | 1 | 0 | 0 | 0 | 2 | 30 |
| Reiver Sanmartin, SF | 0.1 | 0 | 0 | 0 | 0 | 0 | 5 |
| JT Brubaker, SF (S) | 1.0 | 0 | 0 | 0 | 0 | 0 | 7 |
So they're fifty and seventy. Win number fifty took a hundred and twenty games and it isn't going to be a headline anywhere outside this page, which is precisely why it's on this page. Houston took Monday six-three. We took Tuesday. Wednesday is the rubber game against a first-place team we have no business splitting with, let alone beating, and if Tony Vitello manages to take that one he's going to get a paragraph out of me that isn't a complaint. I'm prepared to write it. I have the paragraph ready.
One last thing about Whisenhunt, because I think it matters more than the final score does. This organisation spent two months trading away everything that wasn't bolted to the floor and then asked a fan base to be patient with whatever was left. Patience is a great deal easier when the kid you were told to be patient about goes out on a Tuesday in August and outpitches Hunter Brown. That's the whole ask. Do that eight or nine more times between now and the end of September and the winter gets a lot less miserable around here.
Every result and what's left of the schedule is in the season hub, where this roster honestly stands is in the rebuild page, and the rest of it lives on the Giants hub.
More coverage: Bay Area Sports section · Bay Area Sports · Bay Area Sports Blog home