For one night, all was right in Seattle with the Mariners.

After fans lined up outside to get their heads shaved on Jay Buhner Buzz Cut Night, they came inside the Kingdome and saw Ken Griffey Jr. make another amazing catch and Randy Johnson pitch a masterpiece.One of baseball's biggest disappointments this season, the Mariners finally played like the team that many picked to win it all in '98.

Johnson took a no-hitter into the eighth inning before giving up a one-out single to Brent Gates, and finished with a one-hitter as the Mariners defeated the Minnesota Twins 3-0 Thursday night.

Five outs from his second career no-hitter, Johnson watched Gates' grounder skip past his glove and into center field.

"He was in terrific position to field the ball," Seattle manager Lou Piniella said. "It just went over the top of his glove."

Johnson finished with his third career one-hitter and might have finally convinced the Mariners to sign him to a long-term contract. The left-hander, who hasn't talked with the media for more than a month and recently got into a wrestling match with teammate David Segui, recorded his second straight shutout and the 19th of his career.

Johnson struck out 11, his 94th game in double figures, and walked three. It was his fifth complete game of the season and the 51st of his career.

In keeping with his media boycott, Johnson politely declined to talk about his latest effort.

ORIOLES 9, RANGERS 3: Roberto Alomar went 4-for-6 as Baltimore extended its winning streak to a season-high eight games by winning at Texas. Scott Erickson (10-7) limited the Rangers to three runs and eight hits in seven innings.

TIGERS 3, YANKEES 1: Luis Gonzalez hit a tiebreaking RBI single in the eighth, sending New York to just its second loss in 14 games. Brian Moehler (10-6) improved to 9-0 at home and beat the Yankees for the second time this season. Despite the loss, New York (67-22) kept pace with the 1902 Pirates for the best record this century after 89 games.

RED SOX 15, INDIANS 5: Nomar Garciaparra went 4-for-4 with a three-run homer and five RBIs and Troy O'Leary hit a grand slam at Fenway Park. Garciaparra had a three-run homer and two doubles for the Red Sox, who scored seven runs in the eighth inning.

DEVIL RAYS 8, ANGELS 1: Aaron Ledesma had three hits and three RBIs and Tampa Bay capitalized on knuckle-baller Steve Sparks' wildness with five runs in the first.

Ledesma, Tampa Bay's No. 9 hitter, capped the first inning with a two-run single as the Devil Rays scored five runs on just two hits to snap a four-game road losing streak.

ATHLETICS 5, ROYALS 3: Blake Stein (4-5) pitched 7 1/3 strong innings and Ryan Christenson had a two-run single to break a sixth-inning tie at Oakland. Stein, obtained in last summer's trade with St. Louis for Mark McGwire, allowed two runs and four hits. Bill Taylor pitched the ninth for his 21st save.

BLUE JAYS 5, WHITE SOX 2: At Chicago, Carlos Delgado ended an 0-for-29 slump with two RBI singles to help Toronto snap a four-game losing streak. Chris Carpenter (6-4) had a career-high 10 strikeouts and allowed only four hits in eight innings. Randy Myers pitched the ninth for his 24th save.

NATIONAL LEAGUE

PHILLIES 4, METS 2: The New York Mets had no trouble fitting Todd Hundley into the heart of the batting order. Hiding the two-time All-Star catcher in the outfield is far more difficult. On Thursday night, the Philadelphia Phillies capitalized on Hundley's defensive lapses for all of their runs in a 4-2 victory.

Hundley, playing his fourth game in left field after returning from reconstructive elbow surgery, misjudged Mike Lieberthal's fly ball in the first inning, allowing two runs to score.

Hundley dropped a routine fly in the eighth, allowing Philadelphia to make it 4-1.

Lieberthal doubled twice, tripled and drove in two runs for the Phillies, who have won eight of 10.

Mark Portugal (5-2) limited New York to one run and seven hits in six innings for his third victory in five starts. The Mets stranded 11 runners, going 1-for-10 with runners in scoring position.

Mark Leiter pitched the ninth for his 20th save.

BRAVES 4, BREWERS 3: Atlanta's Greg Maddux became the NL's first 13-game winner, limiting visiting Milwaukee to four hits and one earned run in 62/3 innings.

Eddie Perez snapped a 2-2 tie with a run-scoring single in the sixth inning off Cal Eldred (4-8) and had another RBI single in the eighth off Chad Fox. Rudy Seanez finished for his first save.

DODGERS 8, CARDINALS 2: At St. Louis, Ismael Valdes worked seven strong innings and Raul Mondesi hit a three-run home run for Los Angeles. Valdes (7-9) allowed six hits, struck out eight and walked none.

EXPOS 10, PIRATES 5: Mark Grudzielanek hit a three-run homer in Montreal's six-run fifth as the Expos beat visiting Pittsburgh for their third straight victory.

Grudzielanek's homer chased Jason Schmidt (8-6), who allowed all six runs in the fifth with two out. The Pirates have lost 13 of 17 games.

Carl Pavano (3-3) allowed two runs on four hits in 5 2-3 innings. Kevin Young hit his 19th homer for Pittsburgh.