Baseball’s a funny sport, which I suspect you already knew. The San Francisco Giants sent their ace to the mound on Tuesday, and emerged with a loss. The day before, they sent their Hall of Fame-bound veteran, submerged in one of the best stretches of his historically-great career to the bump, and lost. And on Wednesday they opted for a journeyman Minor League free agent tag-teaming with a struggling rookie who has been diagnosed with acute dingeritis. And they won, beating the St. Louis Cardinals
4-3 to salvage a little something out of their penultimate series of the season.
We’re at the point of the season where narratives are mostly thrown out the window. With Tuesday’s loss, they were eliminated from the postseason, and clinched their fourth consecutive non-winning season. There’s not a lot of big picture stuff to look at, which makes single-game narrative arcs a little harder to come by.
Instead, this game was just about moments. Big, small, important, trivial, you name it — just moments.
The Giants started the scoring in the second inning, when Casey Schmitt and Jung Hoo Lee — both big parts of the 2026 plans but still fairly sizable offensive question marks — doubled in succession. It was part of a three-hit day for Schmitt, who is trying to prove to the organization that he should be viewed as the everyday second baseman next year, even though he was playing third in this one (Matt Chapman, along with Patrick Bailey and Robbie Ray, received a well-deserved day off).
San Francisco was in position to take the lead with those doubles thanks to JT Brubaker, who had set down the side in order in both the first and second inning, in just his fifth game with the team … and his first start in three years. The 31-year old’s night took a bit of a hit after that, when he gave up three consecutive two-out hits in the third inning to tag him for two runs, but those were his only runs in four innings, and he struck out four. Could he become a part of the bullpen that desperately needs rebuilding in 2026?
The Giants equalized in the bottom half of the inning, when Rafael Devers hit one of his most majestic home runs since June’s shocking trade, notching his first Splash Hit with a high-arcing trajectory that would make Steph Curry jealous.
It was the first of many baseballs that Devers will deposit into the bay, and for as happy as you’ll be to see this silly and stupid season come to a conclusion on Sunday, this time next week you’ll be wishing there was another Devers swing to watch while Duane Kuiper crooned into the microphone.
A few pitches after Devers’ bomb, Bryce Eldridge, who tripled his career hit total with a 2-4 day, ripped a 109.7-mph double off the center field wall. Brubaker’s employment with the team is in question, and Schmitt’s role is. But Eldridge’s situation is crystal clear: he’ll be playing every day, either at designated hitter or, as was the case on Wednesday, at first base. There are many critical questions that will determine the fate of the 2026 Giants, but perhaps none bigger than the question of whether Eldridge hits like a inexperienced rookie at the back of the lineup, or like someone who should be hitting cleanup (as he did on Wednesday) for a serious baseball team (which the Giants hope to be when they grow up).
Seeing Devers and Eldridge destroy baseballs within four pitches of each other made the dreaming easy. You could get lost in fantasyland, thinking about an honest-to-goodness potent middle of the order for years to come.
The Giants re-took the lead in the fourth inning, by properly executing something that has plagued them all year: situational hitting. Atrocious defense gifted Christian Koss a leadoff two-bagger on a routine(ish) fly ball, and he took third and fourth base on productive outs from Drew Gilbert and Andrew Knizner. The Giants crash landing this year has been a morbid exercise in improperly executing the fundamentals, but on this night — and especially when held up against the Cardinals’ mistake-ridden affair — they looked like a team that knew what they were doing. And we were reminded that when they play sound, fundamental baseball, their talent is enough to lead them to more wins than losses.
They held onto that lead for a while thanks to arguably the best outing of Carson Seymour’s young career, with the rookie right-handed tossing three no-hit frames, allowing just a walk while striking out four (and making the batters look fairly foolish along the way). One of the keys to 2026 success for the Giants will be reversing a concerning trend that was on full display this year: a lack of young players developing into quality Major Leaguers. The Giants will once again hope, as most teams do, that some of their prospects can supplement the proven talent around them, and bolster the roster. Seymour, who is dripping in talent despite his struggles this year, can be one such player.
San Francisco ceded the lead in the eighth inning, when Matt Gage could only get one out, and left runners at second and third for José Buttó. It hasn’t always been smooth sailing since the trade deadline for Buttó, but he figures to be a key part of the team’s bullpen next year, and while he didn’t work total magic, he only allowed the tying run to score, giving the Giants a chance to retake the lead.
They retook it in the bottom half of the inning, in a moment meaningful for the day, and only for the day. Knizner will likely be looking for a new team this offseason, but on Wednesday, against the team that drafted him and employed him for his first five MLB seasons, he smacked the biggest hit of the day, a sinking line drive that fell in front of — and ran past — center fielder Victor Scott II, scoring the go-ahead run and giving the catcher the first triple of his career.
It wasn’t a moment that mattered in the big picture. It was potentially Knizner’s final game with the Giants, and it led them to a meaningless win. Meaningless in the standings, at least. There’s still meaning to be found in the individual stories; meaning to be found in the team coming together for a morale-boosting win; meaning to be found in sending fans home with something to cheer for. Something to remember.
In the ninth it was Tristan Beck, who hopes to figure into the team’s plans next year when he’ll be out of options, doing what so many Giants have struggled to accomplish this season, and earning a save with a scoreless inning.
With the Giants eliminated, I’ve started jotting down a few offseason story ideas. One time-honored cliché piece that I’ll publish sometime next week will highlight the things that did go well for the Giants this year. The positive developments that we didn’t see coming, and that will put the team in better position for 2026.
I won’t spoil the whole list, which is quite short, but I will say give you a teaser trailer: Christian Koss is going to be one of the thing that went right this year. And on Wednesday he punctuated the value he can have as the do-everything backup infielder.
He scored that go-ahead run in the fourth, in part because he had been hustling enough out of the box to easily get two bases out of a missed routine fly ball. He scored that go-ahead run in the eighth, after opening the inning with a single. He started the game by robbing Brendan Donovan of a hit with a sensational diving stop at second base.
And then came the ninth inning. After Pedro Pagés singled off of Beck to open the frame, and you thought, I’ve seen this film before, Jordan Walker hit a sharp grounder to second. Koss showed off his glove, then showed off his instincts, and finally showed off his arm, by taking the ball to second himself and jump-throwing, correctly intuiting that it was the only way to pull off what was ultimately a highlight reel double play.
It was, and still is, a disappointing season for the Giants, with disappointing results and disappointing developments and disappointing storylines. But even in such a season, there are happy games full of happy moments, and players like Koss, in all his political shirt-wearing glory, bursting on the scene from nowhere at all to stake his claim as a key part of the 2026 team.
Maybe that team will be a good one. We won’t have to wait all that long to find out.