With cardboard cutouts lining every seat of Miller Park due to restrictions in response to COVID-19, the Milwaukee Brewers jogged out to their positions at 1:10 P.M. to face the Chicago Cubs, artificial crowd noise roaring in the background. The weather was perfect for baseball: 65 degrees with no wind.
Three weeks remained in the pandemic-shortened 2020 season,1 and the Cubs were in first place in the National League Central Division with 27 wins, while the Brewers sat five games back in third place. The Brewers’ biggest weakness was their offense, with 180 runs scored in 43 games. Their star, outfielder Christian Yelich, had been struggling since breaking his kneecap a little more than a year before. After leading the NL in batting average, slugging percentage, and OPS in his MVP season of 2018 and MVP runner-up season of 2019, his average had dropped to .203 so far in 2020.
The Brewers were hoping to defeat their division rival behind the arm of Adrian Houser, a master of getting opponents to ground out: 58.5 percent of opponents’ batted balls against him in 2020 were groundballs, thanks to a sinker-dominant arsenal.
On the opposing side, Alec Mills, a college walk-on and 22nd-round pick in the amateur draft, was given the ball for Chicago. The 28-year-old right-hander had a track record of giving up home runs at a high rate and not getting swings and misses. Like Houser, his approach was to get groundballs and weak contact.
After the Cubs went down in order in the first, Mills took the mound for his 15th major-league start. He had made it through seven innings twice before in his career, including seven scoreless frames against the Kansas City Royals on August 3. Five days earlier, on September 8, Mills had held the Cincinnati Reds scoreless for six innings before being removed at 102 pitches; three Cubs relievers completed the 3-0 shutout win.
From the outset, Mills’s curveball and other offspeed pitches were working like magic as Brewer after Brewer was retired. His first scare came with one out in the second, when Jedd Gyorko flied out to center fielder Ian Happ at the warning track. Otherwise, the first three Milwaukee innings passed without incident.
Houser likewise held the Cubs scoreless through three innings, until Chicago’s hitters took advantage of some bad baseball by Milwaukee in the fourth. A walk to Kyle Schwarber, an error by third baseman Eric Sogard, Jason Heyward’s bloop double, a miscue by second baseman Keston Hiura, and Victor Caratini’s bloop single gave the Cubs three runs, even though they did not barrel a single ball. After Houser hit a batter to load the bases, a sharp single by Happ brought two more runners across the plate: 5-0, Cubs.
Mills had nine outs under his belt and a five-run lead when the Brewers’ second hard-hit ball came. Yelich led off the fourth by connecting for a sharp line drive to the opposite field, but it went directly to left fielder Schwarber for the out. A walk to Hiura followed (Mills’s second free pass of the night), but was quickly negated when designated hitter Daniel Vogelbach grounded into a double play.
The Cubs went back at it in the fifth. Schwarber walked and Javier Baez doubled to start the inning, and Houser was pulled at 100 pitches for reliever J.P. Feyereisen.
With Schwarber on third base, Baez on second, and no outs, an unusual play occurred. On Jason Kipnis’s fly ball to deep left field, Schwarber tagged from third and was safe at home. At the same time, Baez tagged from second and easily made it to third. But Brewers manager Craig Counsell thought that Baez had left early from second, so he instructed Feyereisen to throw to second base to appeal the tag play. While the Brewers appealed, Baez sprinted home … and was safe for a 7-0 Cubs lead.
Counsell exploded, insisting that the umpires should have called time before the appeal. He was ejected in midsentence by first-base umpire Ron Kulpa, who correctly applied the rule that an appeal requires play to be live; once time has been called, the team on defense cannot record an out on appeal.2
Two batters later, Chicago had a 9-0 advantage after David Bote’s two-run homer, and Caratini’s RBI double in the seventh; run-scoring outs by Caratini and Bote in the ninth gave the Cubs 12 runs, their most of the 2020 season.
The only drama remaining was whether Mills could complete his gem. With 12 outs to go in the bottom of the sixth, Cubs manager (and former catcher) David Ross took Schwarber out, shifted Happ to left, and sent Billy Hamilton, known for his speed and defense, to center.
Mills was nearing uncharted territory: He had lasted as much as seven innings only twice in his career. Nevertheless, he was stifling the Brewers hitters with excellent control, dotting fastballs and off-speed pitches on the corners of the strike zone. His no-hit bid almost ended in the sixth, when Avisail Garcia was thrown out by half a foot on a slow groundball to Baez at shortstop.
A two-out walk to Vogelbach in the seventh ended a string of nine Brewers retired in a row, but Mills set down Gyorko on a popup, then pitched a three-up, three-down eighth.
Top of the ninth, three outs to go. Mills stood on the cusp of every pitcher’s greatest dream. The Brewers’ last chance to get a hit was first in the hands of catcher Jacob Nottingham, but he popped out to Anthony Rizzo in foul territory. Outfielder Tyrone Taylor struck out swinging. One out to go.
Up to the plate stepped Jace Peterson. Fastball inside, ball one. Two low curveballs, 3-and-0. Fastball for a strike, 3-and-1. On the fifth pitch, Peterson bounced a ball up the middle, but directly into the waiting glove of a perfectly-placed Baez. As Baez completed the play, throwing to Rizzo at first, Mills threw his hands in the air, having completed the no-hitter, and was embraced by his teammates.
Alec Mills, no-hitter. Words that Cubs fans (and every fan of baseball) never expected to string together in the same sentence. How did Mills achieve this extraordinary feat?
One of the main challenges a pitcher faces when attempting a no-hitter as the twenty-first century progresses is keeping his pitch count low. Mills did this, throwing more than 15 pitches in only three of the nine innings, with a total of 114 pitches. (In fact, Mills’s 3.8 pitches per plate appearance throughout 2020 ranked 14th best among qualified starting pitchers that season.3)
The graph above shows every pitch of Mills’s dominant outing, with pitch type shown with color and pitch speed with size.4 His slow, looping curveball, which averaged under 67 mph in the 2020 season, was placed perfectly, as he located it both in the bottom of the zone for called strikes and below the zone in two-strike counts.
Mills’ two most-used pitches in the outing were his sinking and four-seam fastballs, which were the two least effective pitch offerings in his repertoire throughout the season, according to Tom Tango’s Run Value.5 Against the Brewers, however, these pitches elicited swings and misses, or soft contact.
Mills made two more starts after the no-hitter in 2020, but they were a far cry from the dominance displayed on that afternoon at Miller Park, as he gave up four earned runs in each start. In the expanded 16-team playoffs due to the shortened season, the Brewers and Cubs were swept by the Los Angeles Dodgers and Miami Marlins, respectively, in the wild-card series.
No-hitters are known for their randomness, and a no-hitter by Alec Mills of the Chicago Cubs during the oddest season in major-league history is every part random. That’s the beauty of baseball: Anything can happen.
This article was fact-checked by Ray Danner and copy-edited by Len Levin.
The author accessed Baseball-Reference.com and Retrosheet.org for general game information and play-by-play data, along with MLB.com’s Baseball Savant site for statistics on specific players. The author also watched the full game on YouTube.
1 The major leagues played a 60-game season in 2020.
2 From the “Official Baseball Rules,” Rule 5.09(c) comments: “Time is not out when an appeal is being made.”
3 “MLB Baseball Player Stats—Pitches per Plate Appearance.” Team Rankings, Accessed April 2, 2022, https://www.teamrankings.com/mlb/player-stat/pitches-per-plate-appearance?season_id=640.
4 Himanshu Panwar, “Baseball Pitch Charts.” RPubs, Accessed April 2, 2022, https://rpubs.com/himanshu004/baseball_pitch_charts.
5 Tom Tango. “Run Values by Pitch Count.” TangoTiger, Accessed April 2, 2022, http://tangotiger.com/index.php/site/article/run-values-by-pitch-count.