Felix Hernandez pitched the Seattle Mariners' first perfect game and the 23rd in baseball history, overpowering the Tampa Bay Rays in a brilliant 1-0 victory Wednesday.

The Mariners' ace and 2010 AL Cy Young Award winner has long talked of his desire to achieve pitching perfection. He finally accomplished it against the Rays, striking out the side twice and finishing with 12 strikeouts.

It was the third perfect game in baseball this season — a first — joining gems by Chicago's Philip Humber against the Mariners in April and San Francisco's Matt Cain against Houston in June.

This also was the sixth no-hitter in the majors this season, three of them at Safeco Field. Humber threw his gem in Seattle, then six Mariners pitchers combined to hold the Los Angeles Dodgers hitless at the park on June 8.

For the Rays, it was an all-too-familiar feeling. This was the third time in four seasons they had a perfect game pitched against them, following Dallas Braden in 2010 and Mark Buehrle in 2009.

"I don't have any words to explain this," Hernandez said to the crowd, speaking on the field after the final out. "I've been working so hard to throw one and today is for you guys."

Desmond Jennings pinch hit for Jose Lobaton to open the ninth. Hernandez got ahead 1-2 before Jennings fouled off two straight and Hernandez fanned him on a 92 mph fastball down in the zone. Jeff Keppinger batted for Elliot Johnson and grounded out to shortstop on a 1-2 pitch.

With one out to go, Sean Rodriguez got ahead of Hernandez 2-0. Hernandez came back with two straight breaking balls for strikes and ended perfection with a called third strike on his 113th pitch.

Hernandez (11-5) threw his arms up to the sky and was mobbed by his teammates at the pitcher's mound. He embraced catcher John Jaso for a few seconds and then shared hugs with the rest of his teammates.

"It was in my mind, the whole game, it was in my mind," Hernandez said.

It was the second no-hitter this season for the Mariners — doubling the franchise's total entering the year — and third total at Safeco Field after the park went more than a dozen years without one. After Humber's perfect game, a six-pack of Seattle pitchers tossed a combined no-hitter against the Dodgers in June. After the six Seattle pitchers — Kevin Millwood, Charlie Furbush, Brandon League, Tom Wilhelmsen, Stephen Pryor and Lucas Luetge.

"He never did struggle. He kept making good pitches the whole way through," Jaso said. "The last at-bat of the game, falling down 2-0, he just kept his confidence. It was great."

Unlike Cain's perfect game in June, Hernandez didn't need the help of a career-high in strikeouts or spectacular catches.

Hernandez cruised through the first five innings with little trouble. The most concerning moment may have been Sam Fuld's deep fly ball to right center leading off the game that Eric Thames tracked down on the edge of the warning track. Evan Longoria's line drive leading off the fifth eluded Hernandez's glove but was directly at second baseman Dustin Ackley.

Hernandez struck out the side in the sixth, retiring Rodriguez on a check swing to finish the inning and ending the frame having thrown just 69 pitches. Fuld tapped out to second to open the seventh and B.J. Upton grounded out to shortstop for the second out.

Tampa Bay manager Joe Maddon was then ejected for arguing balls and strikes. Maddon became incensed when plate umpire Rob Drake called strike one on Matt Joyce on a fastball that appeared outside. Maddon argued for a couple of minutes before returning to the Rays clubhouse. Joyce worked the count to 3-2, the third three-ball count Hernandez reached, before hitting an inning-ending groundout.

Seattle didn't do much in the bottom of the seventh, but it was a long inning for Hernandez on the bench, extended even further by Ryan's nine-pitch at-bat that culminated in an inning-ending grounder. The wait didn't hamper Hernandez, who struck out Longoria on a biting breaking ball to start the eighth. With chants of "Let's Go Felix!" from the crowd, Hernandez struck out Ben Zobrist. The chant grew in volume as Hernandez got ahead 1-2 to Carlos Pena and he finished off his second inning striking of striking out the side with a punchout of Pena.

It was the fifth time this season Hernandez has struck out 10 or more. Most of his outs were on the infield with only five fly ball outs.

Seattle's only run came thanks to the aggressive baserunning of Ryan. He led off the third with his first hit in 10 at-bats against Tampa Bay starter Jeremy Hellickson (7-8) with a sharp single to left. He was still standing at first with two outs when he got a great jump on a curveball that bounced in the dirt and escaped Lobaton. Ryan never hesitated at second and made it all the way to third. He then jogged home when Jesus Montero followed with a single to left and a 1-0 lead.

Notes: Maddon's ejection was his second of the season. ... Maddon said the team plans to keep IF Luke Scott on his rehab assignment in the minors through the weekend. Scott has been on the DL with an oblique strain. ... Seattle's previous individual no-hitter came when Chris Bosio shut down Boston on April 22, 1993. Seattle's other no-hitter was thrown by Randy Johnson against Detroit on June 2, 1990. ... Tampa Bay was no-hit for the fifth time in franchise history.