Perfect games thrown in Major League Baseball history:
Randy Johnson, Arizona at Atlanta (NL), 2-0, May 18, 2004
David Cone, New York (AL) vs. Montreal, 6-0, July 18, 1999
David Wells, New York (AL) vs. Minnesota, 4-0, May 17, 1998
Kenny Rogers, Texas vs. California (AL), 4-0, July 28, 1994
Dennis Martinez, Montreal at Los Angeles (NL), 2-0, July 28,
1991
Tom Browning, Cincinnati vs. Los Angeles (NL), 1-0, Sept. 16,
1988
Mike Witt, California at Texas (AL), 1-0, Sept. 30, 1984
Len Barker, Cleveland vs. Toronto (AL), 3-0, May 15, 1981
Catfish Hunter, Oakland vs. Minnesota (AL), 4-0, May 8, 1968
Sandy Koufax, Los Angeles vs. Chicago (NL), 1-0, Sept. 9, 1965
Jim Bunning, Philadelphia at New York (NL), 6-0, June 21, 1964
x-Don Larsen, New York (AL) vs. Brooklyn (NL), 2-0, Oct. 8,
1956
Charles Robertson, Chicago at Detroit (AL), 2-0, April 30, 1922
Addie Joss, Cleveland vs. Chicago (AL), 1-0, Oct. 2, 1908
Cy Young, Boston vs. Philadelphia (AL), 3-0, May 5, 1904
Prior to modern era
John Richmond, Worcester vs. Cleveland (NL), 1-0, June 12, 1880
John Ward, Providence vs. Buffalo (NL), 5-0, June 17, 1880
Special mention
y-Ernie Shore, Boston vs. Washington (AL), 4-0, June 23, 1917
z-Harvey Haddix, Pittsburgh vs. Milwaukee (NL), 0-1, 13 innings,
May 26, 1959
a-Pedro Martinez, Montreal at San Diego, June 3, 1995, 1-0, 10
innings
x-World Series
y-Entered game after starter Babe Ruth walked Ray Morgan, and
following an argument, was ejected by umpire Brick Owens. Morgan was caught stealing and Shore retired the remaining 26 batters.
z-Pitched 12 perfect innings, lost in 13th on an error, sacrifice bunt, walk and double
a-Pitched nine perfect innings, allowed leadoff double in 10th and was replaced by Mel Rojas, who finished one-hitter in 1-0 win