In the 28-year history of the Colorado Rockies, 324 people have pitched for the franchise. Only one had done what Ryan Castellani did Saturday.
The Rockies’ No. 18 prospect retired the first 12 batters he faced in his Major League debut against Seattle at T-Mobile Park, setting the tone for a 5-0 Rockies win. Castellani struck out three, but a hit batter and a walk to begin the fifth were enough to end his debut before the Mariners could tag the right-hander for a hit.
"It's something I've dreamed of my whole life," Castellani said.
He joined Tyler Matzek -- who retired the first 13 batters he faced on June 11, 2014 -- as the only Rockies to set down the first 12 batters in their big league debuts. Mark Brownson was the only other Colorado pitcher to maintain a no-hitter through four innings in his debut. Brownson kept his gem against the Astros intact through five innings on July 21, 1998.
It didn't matter that no fans were in the stadium, Castellani's heart still raced when he got on the mound in the first inning. But he didn’t display any nerves. The 24-year-old dropped a fastball into the middle of the zone for strike one against J.P. Crawford. He put another fastball past Crawford's tardy bat, then he dropped a curveball below his swing to secure the first strikeout of his career. Even with the 11 other outs that followed, that sequence was what Rockies manager Bud Black will remember.
"He looked like a big leaguer pitcher tonight," the skipper said.
Castellani used his defense to get the next seven outs before fanning Joe Hudson to get through the order one time unscathed. He threw eight balls in the fourth inning, though he stayed perfect and ended the frame with a strikeout of fellow rookie and 11th-ranked Mariners prospect Kyle Lewis.
A case of COVID-19 in June and the lack of a Minor League season to stay completely stretched out was always going to limit Castellani's ability to pitch deep into Saturday's game. Black planned on 60 or 70 pitches at the most. Castellani's control dissipated further in the fifth as he plunked Kyle Seager to begin the inning, then walked Daniel Vogelbach on five pitches. Black called on Jeff Hoffman to escape the jam, and the right-hander did by getting fourth-ranked Mariners prospect Evan White to bounce into a double play and Tim Lopes to ground out. But not before the skipper had a talk with his rookie.
"I told him that I was so excited for him, that he had pitched so well in his debut and that it was something that all of us will remember when we think of his Major League debut," Black said. "I told him I would always remember the breaking ball to J.P. Crawford, his first strikeout of his Major League career. I thought that was cool. But the thing that was impressive to me was just his mound presence, his poise. He looked under control, delivery-wise. He didn't overthrow the ball. I thought he and [catcher] Drew [Butera] were in great rhythm the whole night. There were just so many positives tonight for Ryan that you really like to see that in a guy's first game. It was really cool stuff."
Hoffman, Yency Almonte and Phillip Diehl pitched the rest of the way. The only hit allowed was Crawford's two-out single off Hoffman in the sixth. It was the sixth one-hitter in Rockies history, five of which have been combined efforts.
The strong debut rewarded Castellani after an arduous road through the Minor Leagues. The Rockies drafted him in the second round in 2014 out of a Phoenix high school, and he posted a 4.45 ERA with Class A Asheville in his first full season. The Philadelphia native followed that up with his best year in the Minors, going 7-8 with a 3.81 ERA and 20.5 percent strikeout rate over 167 2/3 innings for Class A Advanced Modesto in 2016.
Castellani added exactly one run to his ERA the following season at Double-A Hartford and repeated the level in 2018. His ERA climbed again, this time to 5.49. Colorado still added him to the 40-man roster in the offseason, but 2019 was mostly a wash after elbow cleanup surgery limited Castellani to 43 1/3 innings.
The Arizona Fall League gave the 24-year-old a chance to make up for the lost development time, and Castellani took advantage. He went 1-0 with a 2.16 ERA, 20 strikeouts and seven walks over 16 2/3 innings. It was a good sign for his refined three-quarter delivery, which is nearly identical to that of Nationals ace Max Scherzer. The two hurlers worked with the same Phoenix pitching coach and remain close. One day in high school, Castellani skipped class to watch Scherzer throw a bullpen session. He still has the video and watches it almost monthly.
Castellani might still have a windup similar to the Nationals ace, but he's his own pitcher now. And he's got the evidence -- Major League evidence -- to show for it.
"Getting to this point was kind of a long road," he said. "It's been six years. You know, there's so many things to think back on, but I'm so happy it happened. The way that it did is just truly amazing. I'm going to cherish it forever, and it's way better than anything I could have imagined in my head."
In other action:
Rays 5, Yankees 3 (2nd game)
Though New York took the first game of the doubleheader, 8-4, No. 26 Rays prospect Peter Fairbanks picked up the second win of his Major League career in the nightcap. The 26-year-old right-hander allowed an earned run on two hits and a walk in his only inning but was the pitcher of record when Tampa Bay took the lead for good with two runs in the bottom of the fourth. Rookie right-hander Ryan Thompson opened for the Rays and posted two scoreless innings, giving up a hit and striking out one. No. 26 Yankees prospect Michael King took the loss. Walks haunted the 25-year-old, who yielded one hit in 3 2/3 innings but issued five free passes and was charged with three earned runs. Box score
Athletics 3, Astros 1
No. 35 overall prospect Sean Murphy made his 11th start of the season behind the plate for Oakland. The 25-year-old went 0-for-3 and is hitting .167 in 27 at-bats. Astros rookie right-hander Nivaldo Rodriguez handled the eighth inning and allowed a run on a solo homer to right-center field by Matt Chapman. Box score
Phillies 5, Braves 0
Fourth-ranked Braves prospect Kyle Wright (0-2) got the start and navigated the first three innings with relatively little trouble. But the right-hander allowed four earned runs in the fourth when J.T. Realmuto and Jay Bruce launched home runs. He recovered with two more scoreless frames to go six innings for Atlanta, dishing out six hits, three walks and three strikeouts. Wright owns a 6.75 ERA through three starts this season. Box score
Royals 9, Twins 6
Royals right-hander Tyler Zuber secured his first win as a big leaguer. The 25-year-old came on in relief of Danny Duffy and pitched a scoreless fifth. He struck out Miguel Sanó to open the sixth, then walked Eddie Rosario and hit Marwin Gonzalez with a 3-2 curveball. Rosario scored after Greg Holland spelled Zuber. No. 11 Twins prospect Lewis Thorpe took his first loss of the year after surrendering three runs on three hits, including Nicky Lopez’s two-run homer, without recording an out. No. 27 Twins prospect Jorge Alcala shined in relief, striking out four in two hitless frames. Box score
Indians 7, White Sox 1
Luis Robert added another notch in the hit column with a double in a 1-for-4 effort. The top Chicago prospect ripped a two-bagger to left against Zach Plesac in the fourth four his fourth double of the season. No. 30 White Sox prospect Matt @Foster made the start, allowing just one walk with three strikeouts over two hitless innings. In 5 2/3 innings since his debut, the right-hander is unscored upon and holds a 0.71 WHIP. No. 19 Chicago prospect Zack Burdi made his big league debut on the hill and whiffed as he worked around a single in scoreless inning. Box score
Rangers 2, Angels 0
Although he ended up on the losing side, Patrick Sandoval produced the longest outing of his brief career by going six innings. The seventh-ranked Angels prospect allowed two runs on four hits and a walk with four strikeouts. He kept the Rangers in check until Todd Frazier singled with two outs in the sixth and Joey Gallo followed with a two-run homer. Sandoval closed out his outing by whiffing Rougned Odorand has a 3.40 ERA through 10 innings this season. Box score
Blue Jays 2, Red Sox 1
Pitching in relief for the third time this year, No. 11 Blue Jays prospect Anthony Kay earned his first win with 3 1/3 scoreless innings. He gave up two hits and whiffed three, working around errors in the sixth and seventh to keep the Red Sox off the board and pick up his second Major League victory. In three relief appearances this season, the southpaw boasts a 1.13 ERA. Box score
Mets 8, Marlins 4
David Peterson continued to be a quality contributor in the Mets rotation in recording his second win. New York's No. 13 prospect allowed two runs on four hits and and three walks with three strikeouts in five innings. He threw 46 of 84 pitches for strikes and lowered his ERA to 3.78. Tenth-ranked Marlins prospect Monte Harrison got the start in center and reached base three times out of the ninth spot in the lineup. He drew two walks and collected the first two RBIs of his career with an opposite-field single against reliever Drew Smith in the sixth. Box score
Giants 5, Dodgers 4
Fourth-ranked Dodgers prospect Brusdar Graterol made his seventh relief appearance of the season, allowing a run on a hit and a walk with one strikeout in 1 2/3 innings. With an inherited runner on and one out in the fifth, the right-hander shut down the rally by recording back-to-back groundouts. Graterol allowed the first two runners to reach in the sixth and was touched for a run when Mauricio Dubón hit a sacrifice fly. But he limited the damage by striking out Austin Slater. Box score
D-backs 3, Padres 2
Padres No. 27 prospect Javy Guerra threw an inning of hitless relief against Arizona. The right-hander worked out of three-ball counts to Stephen Vogt and Christian Walker before striking out Jon Jay to end the ninth. No. 19 Padres prospect Jake Cronenworth went 0-for-2, ending his six-game hitting streak. Box score
Joe Bloss is a contributor for MiLB.com. Follow him on Twitter @jtbloss.