← SF team pageMLB injury reportMLB news

Joel Kuhnel
P
SF
2026 season
- GP
- 45
- W-L
- 1-3
- ERA
- 4.40
- WHIP
- 1.49
- K
- 28
- IP
- 45.0
Game log
| Date | Opp | Result | Dec | IP | H | ER | BB | K |
|---|---|---|---|---|---|---|---|---|
| Sep 27 | vs LAD | L 1-5 | - | 1.0 | 0 | 0 | 1 | 1 |
| Sep 25 | vs LAD | L 0-2 | - | 1.0 | 0 | 0 | 0 | 1 |
| Sep 23 | vs MIN | L 2-4 | - | 0.2 | 0 | 0 | 1 | 1 |
| Sep 19 | @LAD | L 4-10 | - | 0.2 | 4 | 1 | 0 | 1 |
| Sep 16 | @STL | W 6-5 | S | 1.0 | 0 | 0 | 2 | 0 |
| Sep 14 | @STL | L 1-2 | - | 1.2 | 0 | 0 | 0 | 1 |
| Sep 12 | vs SD | L 6-7 | - | 1.0 | 1 | 1 | 1 | 0 |
| Sep 8 | vs STL | W 2-1 | S | 1.1 | 2 | 1 | 0 | 0 |
| Sep 6 | @NYM | L 2-4 | - | 1.0 | 1 | 0 | 0 | 0 |
| Sep 5 | @NYM | W 9-5 | - | 0.1 | 1 | 0 | 1 | 1 |
| Jul 2 | vs CIN | L 2-7 | - | 1.0 | 3 | 1 | 0 | 0 |
| Jun 28 | vs CHC | L 3-4 | L | 1.0 | 1 | 2 | 2 | 1 |
| Jun 27 | vs CHC | L 2-8 | - | 1.0 | 1 | 1 | 0 | 1 |
| Jun 24 | @CIN | W 6-5 | S | 1.1 | 1 | 0 | 2 | 0 |
| Jun 22 | @CIN | W 2-1 | S | 1.0 | 1 | 0 | 0 | 0 |
| Jun 18 | vs CLE | L 2-4 | - | 1.0 | 1 | 1 | 1 | 0 |
| Jun 16 | vs CLE | W 2-1 | - | 0.1 | 1 | 0 | 0 | 0 |
| Jun 13 | vs PHI | L 8-9 | - | 0.1 | 2 | 0 | 0 | 1 |
| Jun 9 | @ATH | L 5-7 | - | 1.0 | 1 | 1 | 1 | 1 |
| Jun 8 | @ATH | W 15-14 | - | 1.2 | 1 | 1 | 0 | 4 |
| Jun 4 | @CHC | L 6-7 | L | 0.2 | 5 | 4 | 0 | 0 |
| Jun 3 | @CHC | W 5-4 | - | 1.1 | 0 | 0 | 0 | 1 |
| May 29 | vs NYY | L 2-8 | - | 1.2 | 3 | 2 | 0 | 0 |
| May 27 | vs SEA | L 1-9 | - | 1.0 | 2 | 1 | 1 | 0 |
| May 25 | vs SEA | L 2-9 | - | 0.1 | 0 | 0 | 0 | 1 |
| May 23 | @SD | L 0-2 | - | 2.0 | 1 | 0 | 0 | 2 |
| May 21 | @LAA | W 3-2 | W | 1.0 | 1 | 0 | 1 | 0 |
| May 19 | @LAA | W 14-6 | - | 1.0 | 1 | 0 | 0 | 2 |
| May 15 | vs SF | W 5-2 | - | 1.0 | 1 | 0 | 0 | 2 |
| May 14 | vs STL | L 4-5 | - | 0.1 | 0 | 0 | 0 | 0 |
| May 12 | vs STL | L 4-6 | - | 0.2 | 3 | 2 | 0 | 1 |
| May 9 | @BAL | W 6-2 | - | 1.0 | 0 | 0 | 0 | 0 |
| May 8 | @BAL | W 4-3 | - | 1.0 | 0 | 0 | 0 | 0 |
| May 3 | vs CLE | W 7-1 | - | 1.0 | 0 | 0 | 1 | 0 |
| May 1 | vs CLE | L 5-8 | - | 1.2 | 0 | 0 | 1 | 1 |
| Apr 29 | vs KC | W 5-2 | - | 1.2 | 2 | 1 | 1 | 0 |
| Apr 26 | @TEX | W 2-1 | - | 0.2 | 0 | 0 | 1 | 1 |
| Apr 22 | @SEA | L 4-5 | L | 0.2 | 4 | 1 | 0 | 0 |
| Apr 20 | @SEA | W 6-4 | S | 1.0 | 2 | 1 | 0 | 0 |
| Apr 18 | vs CWS | W 7-6 | - | 1.1 | 1 | 0 | 0 | 0 |
| Apr 15 | vs TEX | W 6-5 | S | 1.1 | 0 | 0 | 0 | 2 |
| Apr 12 | @NYM | W 1-0 | S | 1.0 | 0 | 0 | 0 | 0 |
| Apr 11 | @NYM | W 11-6 | - | 1.0 | 1 | 0 | 0 | 0 |
| Apr 8 | @NYY | W 3-2 | S | 1.0 | 0 | 0 | 0 | 1 |
| Apr 7 | @NYY | L 3-5 | - | 0.1 | 0 | 0 | 0 | 0 |
| 2024 season | ||||||||
| Aug 24 | @LAD | W 9-8 | - | 2.0 | 1 | 1 | 0 | 0 |
| Aug 22 | @ATH | L 1-3 | - | 1.0 | 2 | 0 | 0 | 1 |
| Aug 19 | @ATH | L 0-3 | - | 1.0 | 0 | 0 | 0 | 2 |
| Aug 6 | @STL | L 3-4 | - | 2.0 | 1 | 0 | 0 | 1 |
| Jul 31 | vs MIA | L 2-6 | - | 2.0 | 0 | 0 | 0 | 0 |
| Apr 12 | vs TEX | L 8-12 | - | 2.0 | 4 | 4 | 0 | 1 |
| 2023 season | ||||||||
| Sep 16 | @KC | L 8-10 | - | 1.0 | 1 | 1 | 0 | 1 |
| Sep 12 | vs ATH | L 2-6 | - | 1.2 | 1 | 0 | 0 | 0 |
| Sep 10 | vs SD | W 12-2 | - | 2.0 | 1 | 0 | 2 | 0 |
| Sep 5 | @TEX | W 14-1 | - | 2.0 | 2 | 0 | 0 | 1 |
| Sep 1 | vs NYY | L 2-6 | - | 1.0 | 0 | 0 | 0 | 0 |
| Jul 22 | @ATH | L 1-4 | - | 0.1 | 3 | 1 | 0 | 1 |
| Jul 16 | @LAA | W 9-8 | - | 1.2 | 2 | 3 | 1 | 0 |
| Jun 9 | @STL | L 4-7 | - | 1.1 | 1 | 0 | 1 | 0 |
| Apr 4 | vs CHC | L 5-12 | - | 2.0 | 5 | 3 | 1 | 0 |
| 2022 season | ||||||||
| Oct 5 | vs CHC | L 2-15 | - | 0.1 | 4 | 4 | 1 | 1 |
| Oct 2 | @CHC | L 1-8 | - | 2.0 | 3 | 1 | 0 | 0 |
| Sep 26 | @PIT | L 3-8 | - | 1.2 | 5 | 2 | 0 | 0 |
| Sep 24 | vs MIL | L 2-10 | - | 1.0 | 0 | 0 | 0 | 1 |
| Sep 22 | vs MIL | L 1-5 | - | 1.1 | 1 | 1 | 0 | 1 |
| Sep 18 | @STL | W 3-0 | - | 1.1 | 0 | 0 | 0 | 1 |
| Sep 16 | @STL | L 5-6 | - | 0.1 | 0 | 0 | 1 | 0 |
| Sep 14 | vs PIT | L 4-10 | - | 1.0 | 1 | 2 | 1 | 1 |
| Sep 12 | vs PIT | L 3-6 | - | 1.0 | 0 | 0 | 0 | 1 |
| Sep 10 | @MIL | L 1-5 | - | 1.0 | 2 | 2 | 0 | 3 |
| Sep 7 | @CHC | W 7-1 | - | 2.0 | 1 | 0 | 0 | 4 |
| Sep 4 | vs COL | L 4-8 | L | 0.0 | 2 | 4 | 1 | 0 |
| Sep 2 | vs COL | W 3-2 | - | 1.0 | 1 | 0 | 0 | 2 |
| Aug 30 | vs STL | W 5-1 | - | 1.0 | 0 | 0 | 0 | 0 |
| Aug 29 | vs STL | L 4-13 | - | 1.0 | 1 | 0 | 0 | 2 |
| Aug 27 | @WSH | W 6-2 | - | 1.0 | 2 | 0 | 0 | 1 |
| Aug 24 | @PHI | L 5-7 | - | 1.1 | 2 | 0 | 0 | 0 |
| Aug 22 | @PHI | L 1-4 | - | 2.0 | 2 | 1 | 0 | 4 |
| Aug 19 | @PIT | L 4-5 | L | 0.1 | 2 | 2 | 0 | 0 |
| Aug 14 | vs CHC | W 8-5 | W | 2.0 | 1 | 0 | 1 | 1 |
| Aug 11 | vs CHC | L 2-4 | - | 1.0 | 0 | 0 | 0 | 0 |
| Aug 9 | @NYM | L 2-6 | - | 0.2 | 2 | 2 | 1 | 1 |
| Aug 7 | @MIL | W 4-2 | - | 0.2 | 0 | 0 | 0 | 0 |
| Aug 6 | @MIL | W 7-5 | - | 1.0 | 0 | 0 | 0 | 1 |
| Aug 3 | @MIA | L 0-3 | - | 0.2 | 1 | 0 | 0 | 1 |
| Jul 31 | vs BAL | W 3-2 | - | 0.2 | 1 | 0 | 0 | 0 |
| Jul 29 | vs BAL | L 2-6 | - | 1.0 | 0 | 0 | 0 | 0 |
| Jul 25 | vs MIA | W 11-2 | - | 2.0 | 2 | 0 | 1 | 1 |
| Jul 23 | vs STL | L 3-6 | - | 1.0 | 2 | 1 | 0 | 1 |
| Jul 15 | @STL | L 3-7 | - | 0.2 | 0 | 0 | 1 | 0 |
| Jul 13 | @NYY | L 6-7 | - | 1.0 | 0 | 0 | 0 | 1 |
| Jul 10 | vs TB | W 10-5 | - | 1.0 | 2 | 2 | 0 | 2 |
| Jul 8 | vs TB | W 2-1 | W | 1.0 | 1 | 0 | 0 | 0 |
| Jul 6 | vs NYM | L 3-8 | - | 0.2 | 1 | 0 | 0 | 1 |
| Jul 5 | vs NYM | W 1-0 | - | 1.0 | 1 | 0 | 0 | 0 |
| Jul 1 | vs ATL | L 1-9 | - | 1.0 | 2 | 3 | 1 | 2 |
| Jun 28 | @CHC | W 5-3 | - | 1.0 | 3 | 3 | 0 | 1 |
| Jun 22 | vs LAD | L 4-8 | - | 1.0 | 1 | 3 | 2 | 2 |
| Jun 19 | vs MIL | L 3-6 | - | 1.0 | 2 | 2 | 0 | 1 |
| Jun 17 | vs MIL | L 4-5 | - | 1.0 | 1 | 0 | 0 | 1 |
Latest news
The Giants outrighted Kuhnel to Triple-A Sacramento on Monday.
Kuhnel has been outrighted before, so he can decline the assignment and elect free agency. The veteran reliever collected a combined 4.40 ERA and 28:18 K:BB across 45 innings with four different teams in 2026.
RotoWire via ESPN · 4d ago
Kuhnel gave up an unearned run on two walks in the 10th inning Wednesday to record his eighth save of the season in a 6-5 win over the Cardinals.
It was his second save in six appearances for the Giants since being claimed off waivers from the Brewers, although Kuhnel couldn't stop the phantom runner from crossing the plate in the 10th. In the process, the 31-year-old right-hander became the first player in MLB history to record multiple saves for three different teams in the same season, after he picked up four for the A's and two for Milwaukee earlier in the year. Both Dylan Smith and Trent Harris had pitched earlier in the contest, with Harris getting a hold and Smith blowing the save in the ninth, so the closing picture in San Francisco remains as muddled as ever.
RotoWire via ESPN · Sep 16
Kuhnel allowed one run on two hits over 1.1 innings, recording no walks or strikeouts while earning the save in Tuesday's 2-1 win over the Cardinals.
It's not often a pitcher has a chance to log a save for three different teams in the same year, but that's what Kuhnel has achieved in 2026. He's allowed one run over 2.2 innings across his three appearances for the Giants, allowing four hits and one walk in that span. Kuhnel is at a 4.74 ERA, 1.50 WHIP and 23:13 K:BB through 38 innings between the Giants, Brewers and Athletics, adding seven saves, six holds and a blown save. Regular closer Dylan Smith struggled in a blown save Tuesday, but it's not yet clear if Kuhnel has worked his way into the high-leverage mix for the last three weeks of the Giants' campaign. Kuhnel is the 11th pitcher to earn a save for San Francisco this year.
RotoWire via ESPN · Sep 9
The Giants claimed Kuhnel off waivers from the Brewers on Friday, Adam McCalvy of MLB.com reports.
Kuhnel hasn't pitched in the big leagues since early July due to right rotator cuff tendinopathy, but he's healthy now after completing a rehab assignment. The 31-year-old has posted a 4.84 ERA and 22:12 K:BB over 35.1 innings in the majors this season and will give the Giants some experienced bullpen help.
RotoWire via ESPN · Sep 4
The Brewers activated Kuhnel (shoulder) from the 15-day injured list Wednesday and designated him for assignment, Adam McCalvy of MLB.com reports.
Kuhnel is recovered from the right rotator cuff tendinopathy that sent him to the IL in early July, but the Brewers have decided they don't have room for the reliever on their roster. The 31-year-old has authored a 4.84 ERA and 22:12 K:BB over 35.1 innings between the Athletics and Brewers in 2026.
RotoWire via ESPN · Sep 2
Kuhnel (shoulder) retired two of the five batters he faced and was charged with two earned runs on three hits and no walks in a rehab appearance Sunday for Triple-A Nashville.
Kuhnel fired 13 of his 17 pitches for strikes in the rehab outing, his first appearance at any level since July 2 following his placement on the 15-day injured list due to right rotator cuff tendinopathy. Though Kuhnel pounded the strike zone, batters were able to easily square up on him, as all three hits he allowed went for extra bases (one home run, two doubles). The right-hander will need to show improved results over his next few rehab appearances before rejoining the Milwaukee bullpen.
RotoWire via ESPN · Aug 3