\n\n","providerName":"Twitter","providerUrl":"https://twitter.com","thumbnail_url":null,"type":"oembed","width":550,"contentType":"rich"},{"__typename":"Markdown","content":"\"I think the reaction that you saw out of me was more of a relief than anything ... I completely blacked out,\" Walsh said. “Have you ever seen *Talladega Nights*, the scene where Ricky Bobby thinks he's on fire and he's down to his underwear and he's running around? I like to think that was \\[what happened to me\\], almost just like an instinctual takeover.”\n\n \nAccording to Walsh, the hurlers shook off Berg one time in total the entire night.\n\n \n\"It was really like just one unit doing it together. It wasn't three different guys coming out there doing their own thing,” Berg said. “It was everybody doing it together.\"","type":"text"},{"__typename":"Markdown","content":"* Subscribe to the MLB Pipeline Newsletter","type":"text"},{"__typename":"Markdown","content":"Offense and fireworks often go hand-in-hand, but on this Fourth of July night, Greensboro’s pitching staff delivered the real show.","type":"text"}],"relativeSiteUrl":"/news/pirates-prospects-combine-perfect-game-high-a-greensboro","contentType":"news","subHeadline":"","summary":"Fourth of July and baseball? Some might say it’s the perfect combination. For the Greensboro Grasshoppers on Friday, it turned out to be just that -- with a perfect game to match.","tagline({\"formatString\":\"none\"})":null,"tags":[{"__typename":"InternalTag","slug":"storytype-article","title":"Article","type":"article"},{"__typename":"TeamTag","slug":"teamid-477","type":"team","title":"Greensboro Grasshoppers","team":{"__ref":"Team:477"}},{"__typename":"PersonTag","slug":"playerid-694753","title":"Khristian Curtis","person":{"__ref":"Person:694753"},"type":"player"},{"__typename":"TaxonomyTag","slug":"mlb-top-prospects","title":"MLB Top Prospects","type":"taxonomy"},{"__typename":"TaxonomyTag","slug":"minor-league-baseball","title":"MiLB","type":"taxonomy"},{"__typename":"ContributorTag","slug":"cole-weintraub","title":"Cole Weintraub","type":"contributor"},{"__typename":"TaxonomyTag","slug":"apple-news","title":"Apple News","type":"taxonomy"},{"__typename":"TeamTag","slug":"teamid-134","type":"team","title":"Pittsburgh Pirates","team":{"__ref":"Team:134"}},{"__typename":"TaxonomyTag","slug":"send-to-milb","title":"Send to MiLB","type":"taxonomy"}],"type":"story","thumbnail":"https://img.mlbstatic.com/mlb-images/image/upload/{formatInstructions}/mlb/xijspdxtyaa42lbkazb2","title":"Pirates pitching prospects Khristian Curtis, Jake Shirk and Michael Walsh combine for perfect game"},"getHeaderFromForgePath({\"contentSource\":\"MLB\",\"headerPath\":\"/_navs/header/milb/global-nav\",\"locale\":\"en-US\",\"paletteKey\":\"milb-base-palette\",\"propertiesKey\":\"milb-global-properties\"})":{"__typename":"Header","navigation":[{"__typename":"NavItem","customPropertiesString":"mobile:true","icon":null,"linkTarget":null,"linkText":"Scores","linkUrl":"https://www.milb.com/scores?affiliateId=mlbcom-milb","placement":"mobile","visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[{"__typename":"NavItem","placement":null,"linkText":"Triple-A Scores","linkUrl":"https://www.milb.com/scores?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""},{"__typename":"NavItem","placement":null,"linkText":"Double-A Scores","linkUrl":"https://www.milb.com/scores/double-a?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""},{"__typename":"NavItem","placement":null,"linkText":"High-A Scores","linkUrl":"https://www.milb.com/scores/high-a?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Single-A Scores","linkUrl":"https://www.milb.com/scores/single-a?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Rookie Scores","linkUrl":"https://www.milb.com/scores/rookie?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""}]}]},{"__typename":"NavItem","customPropertiesString":"","icon":null,"linkTarget":null,"linkText":"Schedule","linkUrl":"https://www.milb.com/schedule?affiliateId=mlbcom-milb","placement":null,"visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[{"__typename":"NavItem","placement":null,"linkText":"Triple-A Schedule","linkUrl":"https://www.milb.com/schedule/triple-a?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""},{"__typename":"NavItem","placement":null,"linkText":"Double-A Schedule","linkUrl":"https://www.milb.com/schedule/double-a?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"High-A Schedule","linkUrl":"https://www.milb.com/schedule/high-a?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Single-A Schedule","linkUrl":"https://www.milb.com/schedule/single-a?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Rookie Schedule","linkUrl":"https://www.milb.com/schedule/rookie?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Sync Schedules","linkUrl":"https://milb.ecal.com/","linkTarget":"_blank","visible":null,"icon":null,"tooltip":null,"customPropertiesString":null}]}]},{"__typename":"NavItem","customPropertiesString":"mobile:true","icon":null,"linkTarget":null,"linkText":"Teams","linkUrl":"https://www.milb.com/about/teams/by-affiliate?affiliateId=mlbcom-milb","placement":"mobile","visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[{"__typename":"NavItem","placement":null,"linkText":"Teams by Affiliate","linkUrl":"https://www.milb.com/about/teams/by-affiliate?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Teams by Name","linkUrl":"https://www.milb.com/about/teams?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Teams by Class","linkUrl":"https://www.milb.com/about/teams/by-class?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Teams by League","linkUrl":"https://www.milb.com/about/teams/by-league?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Ballparks","linkUrl":"https://www.mlb.com/milb/fans/ballpark-guides","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null}]}]},{"__typename":"NavItem","customPropertiesString":"align:right","icon":null,"linkTarget":null,"linkText":"Watch","linkUrl":"https://www.milb.com/live-stream-games?affiliateId=mlbcom-milb","placement":"right","visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[{"__typename":"NavItem","placement":null,"linkText":"Watch Games","linkUrl":"https://www.milb.com/live-stream-games?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""},{"__typename":"NavItem","placement":null,"linkText":"Subscribe","linkUrl":"https://www.mlb.com/live-stream-games/subscribe","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""},{"__typename":"NavItem","placement":null,"linkText":"Highlights","linkUrl":"https://www.mlb.com/video/?q=ContentTags+%3D+%5B%22minor-league-baseball%22%5D+Order+by+Timestamp+DESC","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Highlights by Affiliate","linkUrl":"https://www.milb.com/fans/video-by-affiliate?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Prospect Highlights","linkUrl":"https://www.mlb.com/video/topic/mlb-pipeline","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Streaming FAQ","linkUrl":"https://www.milb.com/live-stream-games/faqs?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Help Center","linkUrl":"https://support.mlb.com","linkTarget":"_blank","visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Gameday Audio","linkUrl":"https://www.milb.com/live-stream-games/audio?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Podcasts","linkUrl":"https://www.mlb.com/fans/podcasts","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Bally Sports Live","linkUrl":"https://www.ballysports.com/","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null}]}]},{"__typename":"NavItem","customPropertiesString":"align:right","icon":null,"linkTarget":null,"linkText":"Tickets","linkUrl":"https://www.mlb.com/milb/tickets","placement":"right","visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[]}]},{"__typename":"NavItem","customPropertiesString":"align:right","icon":null,"linkTarget":null,"linkText":"Shop","linkUrl":"https://milbstore.com/?utm_source=milb.com&utm_medium=referral&utm_campaign=house-2023&utm_content=menu-navigation-link-2023&utm_term=568","placement":"right","visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[{"__typename":"NavItem","placement":null,"linkText":"MiLB Store","linkUrl":"https://milbstore.com/?utm_source=milb.com&utm_medium=referral&utm_campaign=house-2023&utm_content=menu-navigation-link-2023&utm_term=568","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Auctions","linkUrl":"https://bit.ly/3aKmj6F","linkTarget":"_blank","visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Shop Copa","linkUrl":"https://milbstore.com/pages/copa-de-la-diversion","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Shop Marvel","linkUrl":"https://milbstore.com/pages/marvel","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null}]}]},{"__typename":"NavItem","customPropertiesString":"mobile:true","icon":null,"linkTarget":null,"linkText":"Standings","linkUrl":"https://www.milb.com/standings/?affiliateId=mlbcom-milb","placement":"mobile","visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[{"__typename":"NavItem","placement":null,"linkText":"Full Season","linkUrl":"https://www.milb.com/standings/?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Rookie Leagues","linkUrl":"https://www.milb.com/about/rookie?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null}]}]},{"__typename":"NavItem","customPropertiesString":null,"icon":null,"linkTarget":null,"linkText":"Stats","linkUrl":"https://www.milb.com/stats?affiliateId=mlbcom-milb","placement":null,"visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[{"__typename":"NavItem","placement":null,"linkText":"Full Season","linkUrl":"https://www.milb.com/stats?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""},{"__typename":"NavItem","placement":null,"linkText":"Rookie Leagues","linkUrl":"https://www.milb.com/about/rookie?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Players","linkUrl":"https://www.milb.com/players?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Top Prospect Stats","linkUrl":"https://www.mlb.com/prospects/stats/top-prospects","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null}]}]},{"__typename":"NavItem","customPropertiesString":"","icon":null,"linkTarget":null,"linkText":"News","linkUrl":"https://www.mlb.com/milb/news","placement":null,"visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[{"__typename":"NavItem","placement":null,"linkText":"Pipeline","linkUrl":"https://www.mlb.com/milb/pipeline","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Transactions","linkUrl":"https://www.milb.com/roster/transactions?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Copa de la Diversión","linkUrl":"https://www.milb.com/fans/copa?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""},{"__typename":"NavItem","placement":null,"linkText":"Baseball Traveler","linkUrl":"https://www.mlb.com/milb/baseball-traveler?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""},{"__typename":"NavItem","placement":null,"linkText":"Malmö Oat Milkers","linkUrl":"https://www.milb.com/team/oatly?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""},{"__typename":"NavItem","placement":null,"linkText":"The MiLB App","linkUrl":"https://www.mlb.com/milb/about/milb-app","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":""},{"__typename":"NavItem","placement":null,"linkText":"MiLB Newsletters","linkUrl":"https://www.milb.com/milb/forms/newsletter-registration?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Sweepstakes & Contests","linkUrl":"https://www.milb.com/milb/fans/contests?affiliateId=mlbcom-milb","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null}]}]},{"__typename":"NavItem","customPropertiesString":"mobile:true","icon":"group","linkTarget":null,"linkText":"Prospects","linkUrl":"https://www.mlb.com/milb/prospects","placement":"mobile","visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[{"__typename":"NavItem","placement":null,"linkText":"Top 100","linkUrl":"https://www.mlb.com/milb/prospects","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Top 30 by Team","linkUrl":"https://www.mlb.com/milb/prospects/orioles","linkTarget":"","visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Top 50 International","linkUrl":"https://www.mlb.com/milb/prospects/2025/international","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null},{"__typename":"NavItem","placement":null,"linkText":"Draft Top 200","linkUrl":"https://www.mlb.com/milb/prospects/draft","linkTarget":null,"visible":null,"icon":null,"tooltip":null,"customPropertiesString":null}]}]},{"__typename":"NavItem","customPropertiesString":null,"icon":"mlb","linkTarget":null,"linkText":"MLB","linkUrl":"https://www.mlb.com/","placement":null,"visible":null,"subNav":[{"__typename":"SubnavColumn","title":null,"navigation":[]}]}],"cfPalette":{"__typename":"CF_Palette","headerMastheadBackgroundColor":"#00278C","headerMastheadTextColor":"#ffffff","headerNavigationBackgroundColor":"#00278C","headerNavigationBorderColor":"#006CFF","headerNavigationTextColorHover":"currentcolor","headerNavigationTextColor":"#fff"},"cfEntityWebProperties":{"__typename":"CF_Entity_WebProperties","urlLogo":null,"headerMastheadTagline":null,"headerPrimaryLogo":{"__typename":"CF_Asset","url":"//images.ctfassets.net/iiozhi00a8lc/7eeTdW5zGYe0sW2ZlIle7E/990464d4b5e4e3b3a65cb6c56ce808ea/milb-alt.svg","description":null},"headerMastheadSponsorImage":{"__typename":"CF_Asset","url":null,"description":null},"headerMastheadTaglineContainerWidth":"512px","headerMastheadTaglineContainerHeight":"56px"}}},"Team:477":{"__typename":"Team","id":477,"sport":{"__ref":"Sport:13"},"teamName":"Grasshoppers"},"Person:694753":{"__typename":"Person","id":694753,"initLastName":"K Curtis","team":{"__typename":"Team","sport":{"__ref":"Sport:13"}}},"Sport:13":{"__typename":"Sport","id":"13"},"Sport:1":{"__typename":"Sport","id":"1"},"Team:134":{"__typename":"Team","id":134,"sport":{"__ref":"Sport:1"},"teamName":"Pirates"}}}
window.adobeAnalytics = {"reportingSuiteId":"mlbglobal08,mlbcom08","linkInternalFilters":"mlb"}
window.globalState = {"tracking_title":"Minor League Baseball","lang":"en"}
window.appId = ''
/*-->*/
Pirates' High-A club spins first non-complex 9-inning perfect game since 2017
Fourth of July and baseball? Some might say it’s the perfect combination. For the Greensboro Grasshoppers on Friday, it turned out to be just that -- with a perfect game to match.
Three Pirates pitching prospects -- Khristian Curtis (PIT No. 24), Jake Shirk and Michael Walsh -- combined to throw a nine-inning perfect game for High-A Greensboro in a 2-0 win over Aberdeen at Ripken Stadium. It marked the first nine-inning perfect game outside of the Complex Leagues in the Minors since 2017.
News of the perfecto made it all the way to the Major League club in Seattle.
“That was really cool to see,” Pirates manager Don Kelly said. “I got to text [Greensboro manager] Blake [Butler] congrats to those guys down there. What an accomplishment to be a part of something like that. It was awesome. I'm sure it was electric.”
Earlier this season, Mets Double-A prospects combined to throw a seven-inning perfecto as part of a doubleheader. There were a pair of Dominican Summer League perfect games in 2022 and '24, but both went fewer than nine frames. On July 2, 2022, the Dodgers' Rookie-level Arizona Complex League club threw one that went nine frames and combined to use five pitchers.
Greensboro last threw a no-hitter on Aug. 5, 2018, when three pitchers -- Taylor Braley, Jeremy Ovalle, Michael Mertz -- combined to blank Kannapolis across seven frames.
The fireworks didn’t come immediately. Both teams were hitless through three innings, and the game remained scoreless until the fifth, when newly acquired Titus Dumitru launched his first homer as a member of the Pirates organization.
Curtis set the tone on the mound from the very first batter. After falling behind 3-0 to leadoff hitter Austin Overn, the 6-foot-5 righty battled back to retire him swinging on a full count.
“I just trust in my stuff and know that it's good enough, so whenever I'm behind in the count, I feel I can still beat them with my fastball,” Curtis said.
On the next hitter, Curtis opened Griff O’Ferrall with another 3-0 count, but induced a lineout in a full count.
The 2023 12th-round pick proceeded to dominate. He retired all 18 batters he faced over six perfect innings, racking up a professional-best 10 strikeouts.
In the sixth, Greensboro added an insurance run on back-to-back singles by Konnor Griffin (PIT No. 2/MLB No. 13) and Keiner Delgado (PIT No. 26), capped by a sacrifice fly from outfielder Will Taylor.
Shirk took over in the seventh and continued the perfection, striking out four batters over two clean innings.
"I didn't know a perfect game was going on,” the right-hander said. “So in that sense, I kind of got lucky, just because I didn't make it as big as it needed to be."
The Wright State product has been stellar since joining Greensboro, allowing just one run over his first four appearances.
The final act belonged to Walsh. With a 12 1/3 scoreless inning streak entering the night, he completed the masterpiece with a flawless ninth inning, striking out two to cement the perfect game.
"All I had to do when I ran out there was just nod and smile," Walsh said, "because [catcher Derek Berg] was an absolute stud for us back there."
After fanning Cole Urman for the final out, Walsh turned his back to Berg and faced center field to let out an emphatic yell before being mobbed by his teammates in celebration.
27 up, 27 down! ✅
Here’s how the @GSOHoppers’ masterpiece looked in my scorebook.
It’s the first time in my career that I’ve called a perfect game. I’m grateful for the opportunity and honored that I could be the voice of such a special game/moment. https://t.co/viMFHMGRJ1pic.twitter.com/5PXhtVHos4
— Michael Marcantonini (@MIKEdUpSports) July 5, 2025
"I think the reaction that you saw out of me was more of a relief than anything ... I completely blacked out," Walsh said. “Have you ever seen Talladega Nights, the scene where Ricky Bobby thinks he's on fire and he's down to his underwear and he's running around? I like to think that was [what happened to me], almost just like an instinctual takeover.”
According to Walsh, the hurlers shook off Berg one time in total the entire night.
"It was really like just one unit doing it together. It wasn't three different guys coming out there doing their own thing,” Berg said. “It was everybody doing it together."