In Major League Baseball, a perfect game is achieved by a pitcher who throws a complete game of at least nine innings without allowing a single baserunner. This means:

Below is a list of each perfect game pitched in the history of Major League Baseball.

Pre-modern era

DatePitcherScoreNotes
June 12, 1880Lee RichmondCleveland Blues 0 at Worcester Ruby Legs 15 K
June 17, 1880John Montgomery WardProvidence Grays 5 at Buffalo Bisons 05 K

 

Dead ball era

DatePitcherScoreNotes
May 5, 1904Cy YoungPhiladelphia Athletics 0 at Boston Americans 38 K
October 2, 1908Addie JossChicago White Sox 0 at Cleveland Naps 174 pitches
6 K

 

Modern era

DatePitcherScoreNotes
April 30, 1922Charlie RobertsonChicago White Sox 2 at Detroit Tigers 090 pitches
6 K
October 8, 1956Don LarsenBrooklyn Dodgers 0 at New York Yankees 2
Game 5 of the 1956 World Series
97 pitches
7 K
June 21, 1964Jim BunningPhiladelphia Phillies 6 at New York Mets 090 pitches
10 K
September 9, 1965Sandy KoufaxChicago Cubs 0 at Los Angeles Dodgers 1113 pitches
14 K
May 8, 1968Jim "Catfish" HunterMinnesota Twins 0 at Oakland Athletics 4107 pitches
11 K
May 15, 1981Len BarkerToronto Blue Jays 0 at Cleveland Indians 3103 pitches
11 K
September 30, 1984Mike WittCalifornia Angels 1 at Texas Rangers 094 pitches
10 K
September 16, 1988Tom BrowningLos Angeles Dodgers 0 at Cincinnati Reds 1100 pitches
7 K
July 28, 1991Dennis MartínezMontreal Expos 2 at Los Angeles Dodgers 095 pitches
5 K
July 28, 1994Kenny RogersCalifornia Angels 0 at Texas Rangers 498 pitches
8 K
May 17, 1998David WellsMinnesota Twins 0 at New York Yankees 4120 pitches
11 K
July 18, 1999David ConeMontreal Expos 0 at New York Yankees 688 pitches
10 K
May 18, 2004Randy JohnsonArizona Diamondbacks 2 at Atlanta Braves 0117 pitches
13 K
July 23, 2009Mark BuehrleTampa Bay Rays 0 at Chicago White Sox 5116 pitches
6 K
May 9, 2010Dallas BradenTampa Bay Rays 0 at Oakland Athletics 4109 pitches
6 K
May 29, 2010Roy HalladayPhiladelphia Phillies 1 at Florida Marlins 0115 pitches
11 K
April 21, 2012Philip HumberChicago White Sox 4 at Seattle Mariners 096 pitches
9 K
June 13, 2012Matt CainHouston Astros 0 at San Francisco Giants 10125 pitches
14 K
August 15, 2012Félix HernándezTampa Bay Rays 0 at Seattle Mariners 1113 pitches
12 K
June 28, 2023Domingo GermánNew York Yankees 10 at Oakland Athletics 099 pitches
9 K

 

The following near-misses don't count as official perfect games, for the reasons explicated below:

DatePitcherFinal scoreCircumstances
June 23, 1917Ernie ShoreBoston Red Sox 5
at Washington Senators 0
Babe Ruth, when he was still a pitcher, started the game for Boston and walked the first batter. He was then ejected for arguing with the plate umpire. Shore came on in relief. On his first pitch, the runner on first was caught stealing second, after which Shore retired the next 26 batters in order. This was for a time considered a perfect game until MLB revised its rules in 1991 to make the criteria more stringent, after which, a few games like this one were ruled not to be perfect games.
May 26, 1959Harvey HaddixPittsburgh Pirates 0
at Milwaukee Braves 1
Haddix pitched nine perfect innings but his Pirates teammates couldn't score any runs to back him. The game went into extra innings tied at zero. Haddix pitched three further perfect innings before finally allowing a baserunner (who reached base on an error) in the thirteenth inning. A sacrifice bunt, a walk and a double followed that and the Pirates lost 1-0.
June 3, 1995Pedro MartínezMontreal Expos 1
at San Diego Padres 0
Martínez pitched nine perfect innings but, like Haddix, was provided with no run support. The game went into extra innings tied at zero. The Expos scored a run in the top of the tenth inning. Martínez gave up a lead-off double in the tenth inning before being relieved. He pitched a full nine perfect innings and was the winning pitcher, but isn't credited with a perfect game because this wasn't a complete game.
June 2, 2010Armando GalarragaCleveland Indians 0
at Detroit Tigers 3
Galarraga threw a mere 83 pitches to the first 26 batters, which were retired in order. The 27th batter grounded to first base. Galarraga rushed over to first to cover it as the first baseman threw him the ball for the putout. He had the ball and touched the base before the runner reached it, but first base umpire Jim Joyce called the runner safe because the throw to Galarraga was soft and Joyce didn't hear the ball hit the glove. Galarraga then retired the 28th batter for the final out. After the game, Joyce watched replays of the disputed call and admitted that he got it wrong. He personally apologized to Galarraga. Despite widespread media attention, MLB Commissioner Bud Selig declined to reverse the errant call, leaving Galarraga with a one-hit shutout. This game is informally known as the "28-out perfect game" in baseball lore, and it paved the way for the use of instant replay in Major League Baseball, which debuted at the start of the 2014 season.
May 5, 2021John MeansBaltimore Orioles 6
at Seattle Mariners 0
Means came about as close as one can to pitching a perfect game without actually doing so—he managed 9.0 IP, 0 H, 0 R, 0 ER, 0 BB for the no hitter, but in the third inning, when facing Seattle's Sam Haggerty, Means struck out Haggerty with a wild pitch, allowing Haggerty to reach first base. This is believed to be the first instance of a perfect game being lost on a dropped third strike.