National League
Arizona's Randy Johnson became the oldest pitcher in major league history to throw a perfect game as the Diamondbacks beat the Atlanta Braves 2-0.
The 40-year-old retired all 27 hitters for the 17th perfect game in history and the first since the New York Yankees' David Cone did it against Montreal in 1999.
Johnson struck out 13 and went to three balls on just one hitter - Johnny Estrada in the second inning.
After he struck out the final batter he was mobbed by his team-mates and given a standing ovation by the crowd of 23,381 at Turner Field.
"Not bad for being 40 years old," the five-time Cy Young award said. "Everything was locked in.
"A game like this was pretty special. It doesn't come along very often."
Johnson has also now thrown two no-hitters - the first coming in 1990 when he no-hit Detroit but walked six - and the 14-year gap between them is the longest in MLB history.
Johnson, known as the "Big Unit", threw 117 pitches against Atlanta - 87 of them strikes - and struck out the final batter with a 98mph fastball.
Arizona manager Bob Brenly said: "Everything he's done up to this point pales in comparison."
American League
The Toronto Blue Jays handed Johan Santana his first loss in 20 starts with a 5-3 victory over the Minnesota Twins.
Santana had won 10 straight decisions and it was his first loss since July 2003 against Kansas City.
Miguel Batista, Jason Frasor and Terry Adams combined on a five-hitter, while Reed Johnson and Carlos Delgado had two RBIs apiece for the Blue Jays.
The Chicago White Sox ended the Cleveland Indians' season-high five-game winning streak with a 4-2 victory.
Jon Garland pitched seven strong innings, allowing one run and five hits, striking out six and walking one.