Marlins Complete Sweep, Edge Giants 2-1 Behind Stowers’ Power

The Miami Marlins put the finishing touches on a dominant sweep of the San Francisco Giants on Sunday, June 21, 2026, winning 2-1 in a game that showcased exactly why this Marlins team has become a problem in the NL East. Kyle Stowers and Otto Lopez did the damage, combining for both runs as Miami’s pitching staff shut down a Giants offense that simply couldn’t find its rhythm against Miami’s bullpen dominance.

Pitching Decisions

1.1IP1H0ER0BB0K
8.0IP5H2ER1BB5K
1.0IP0H0ER1BB0K

Star Performers

Casey Schmitt

Season AVG: .296
4AB2H0HR1RBI0R0BB
Kyle Stowers

Season AVG: .223
2AB1H1HR1RBI2R1BB

For all the talk about Logan Webb‘s excellence this season, Sunday belonged entirely to the Marlins. Webb was his usual reliable self, scattering five hits over eight innings with five strikeouts and allowing just two earned runs. But here’s the rub: those two runs were all Miami needed. The Giants managed a single scoring play when Casey Schmitt lined a single to right in the third inning, scoring Luis Arraez. One run. One solitary run from a Giants lineup that walked into loanDepot park looking to salvage something from this series.

Stowers, Lopez lead Marlins to sweep of Giants

It was Stowers who struck first, launching a solo home run to center field in the second inning that served as a statement of intent. The kid is rounding into something special at the plate, and he proved it when it mattered most on Father’s Day. The Marlins’ offense then tacked on insurance in the fourth when Otto Lopez doubled down the line in center, scoring Stowers again for what proved to be the winning run.

Kyle Stowers' solo home run (8) 
Otto Lopez's RBI double 

Bullpen Brilliance in the Clutch

Here’s where the Marlins separated themselves from a Giants team that had to be feeling the pressure of a sweep looming. John King came in and worked 1.1 scoreless innings to earn the win, but it was Lake Bachar‘s save that truly encapsulated Miami’s superiority in high-leverage situations. One inning pitched, one walk, zero hits allowed, and the job done. Bachar picked up his first career save in the process, a moment that will stick with him for life.

Lake Bachar's first save as Marlins turn two

The Giants had their chances. Webb struck out five Giants hitters and showed why he’s a legitimate front-line starter. The problem is that when you’re playing in Miami against a team that’s clicking on all cylinders, one run simply doesn’t cut it. The Marlins defense was sharp throughout, with Esteury Ruiz making a shoestring catch that had no business being caught, and Jung Hoo Lee providing highlight reel material of his own in foul territory.

A Sweep That Says Everything

This sweep stings for San Francisco. You come into a division rival’s house, your ace pitches eight solid innings, and it’s not enough. That’s the mark of a team running hot, a team with swagger, a team that believes it can win in any situation. The Marlins showed all of that on Sunday, June 21, 2026.

Condensed Game: SF@MIA – 6/21/26

The Giants will head home licking their wounds, wondering how they managed to get shut out across a three-game series. Meanwhile, Miami is cementing itself as a serious threat in the National League, one sweep at a time. Stowers is emerging as a key piece, Lopez is contributing in the clutch, and the pitching staff is showing championship-caliber depth. For the Giants, this is a bitter pill to swallow, but it’s one they’ll need to learn from fast.

Box Score

San Francisco Giants Batting

Player AB R H RBI BB SO AVG
Luis Arraez 2B 4 1 1 0 0 0 .320
Bryce Eldridge DH 3 0 0 0 1 0 .298
Casey Schmitt LF 4 0 2 1 0 0 .296
Rafael Devers 1B 3 0 0 0 1 1 .238
Jonah Cox PR 0 0 0 0 0 0 .400
Jung Hoo Lee RF 3 0 0 0 1 0 .327
Willy Adames SS 4 0 0 0 0 2 .223
Matt Chapman 3B 2 0 0 0 0 1 .243
Drew Gilbert CF 3 0 1 0 0 1 .236
Daniel Susac C 3 0 0 0 0 1 .278

San Francisco Giants Pitching

Pitcher IP H R ER BB SO ERA
Logan Webb (L) 8.0 5 2 2 1 5 3.35

Miami Marlins Batting

Player AB R H RBI BB SO AVG
Jakob Marsee CF 3 0 0 0 0 0 .205
Griffin Conine RF 4 0 0 0 0 1 .231
Xavier Edwards 2B 3 0 1 0 0 1 .286
Kyle Stowers 1B 2 2 1 1 1 0 .223
Otto Lopez SS 3 0 1 1 0 0 .332
Owen Caissie DH 3 0 0 0 0 1 .222
Esteury Ruiz LF 3 0 1 0 0 1 .260
Joe Mack C 3 0 0 0 0 1 .248
Connor Norby 3B 3 0 1 0 0 0 .210
Javier Sanoja 3B 0 0 0 0 0 0 .247

Miami Marlins Pitching

Pitcher IP H R ER BB SO ERA
Ryan Gusto 4.1 3 1 1 2 6 6.00
John King (W) 1.1 1 0 0 0 0 2.14
Calvin Faucher 1.1 0 0 0 0 0 3.13
Michael Petersen 1.0 0 0 0 0 0 3.34
Lake Bachar (SV) 1.0 0 0 0 1 0 3.02