Mike Mussina rarely has needed to be perfect this season, or even superb. The Baltimore Orioles have scored runs for him in bunches. But tonight the wellspring of scoring went dry, and a superb effort by their ace was wasted in a 2-1 loss to the Oakland Athletics in front of a paltry crowd of 7,443 at Network Associates Coliseum.

Tom Candiotti, the A's veteran knuckleballer, baffled the Orioles over 6 1/3 innings of devilish, darting soft-tosses, retiring the first 12 batters.

The loss thwarted the Orioles' attempt to notch only their second three-game winning streak of the season. They fell to 2-2 on this trip, 18-29 overall.

"Moose pitched a great game," Orioles Manager Ray Miller said. "His stuff got better each inning. He's getting better each time out."

It was a classic pitching duel, made even better by the delicious contrast of Mussina's surgical precision and calculation vs. Candiotti's chaotic knuckleball, the trajectory of which not even Candiotti can predict.

Mussina (7-2) came into the game enjoying the third-highest run support of any American League pitcher (8.63 per nine innings), which is a major reason he has such a good win-loss record but such a mediocre ERA.

"You can pitch well and lose, and you can pitch mediocre to bad and win sometimes," Mussina said. "Most nights what I did tonight would be good enough. On this night it wasn't."

It was clear tonight from the way Candiotti (3-5) shut down the Orioles that Mussina would need to be nearly flawless to win. He nearly was.

Mussina allowed a tainted run in the first inning on an RBI double by Matt Stairs -- which rolled all the way to the wall between center fielder Brady Anderson and right fielder Albert Belle when neither went to cut off the ball.

"I was shocked that ball went to the wall," Miller said. "I think everyone was shocked the ball kept going but it was smoked. Both [Anderson and Belle] took a straight-across route and the ball shot through."

But after that, the A's didn't have another scoring chance until the fifth, when a leadoff single by Eric Chavez and a two-out walk to Tony Phillips put two runners on for Miguel Tejada. But Mussina got Tejada to ground out meekly to first.

Mussina almost escaped another mess in the sixth, after Jason Giambi led off with a double to the gap in left. Mussina got Stairs to foul out, and then got Olmedo Saenz to lift a foul pop. But Saenz's pop drifted a couple of rows into the seats, and on the next pitch he drilled a low slider up the middle for a single, scoring Giambi and giving the A's a 2-1 lead.

Candiotti came into the game having given up 31 hits in his previous four starts (covering 21 2/3 innings) and hadn't won since April 22. But through the first four innings tonight he was perfect, with only one ball -- Mike Bordick's line out to left in the fourth -- leaving the infield.

Candiotti's knuckler got the extra benefit tonight of a stiff, swirling wind, which made fly balls perilous and made Candiotti's floaters even tougher to hit. He also got help from his defense. Rookie third baseman Eric Chavez made a nifty diving stop to rob Belle of an extra-base hit down the line in the third, and left fielder Ben Grieve made a nice running catch to grab Bordick's liner in the fourth.

But Belle, batting .160 (4 for 25) in his previous seven games, led off the fifth with a sharp single to left. Harold Baines, coaxing every ounce of effort from his 40-year-old legs, kept the inning alive by beating out a double-play grounder, and later scored on Delino DeShields's infield single, which was bobbled by shortstop Tejada.

Catcher Charles Johnson, batting with runners on first and third, had a chance to put the Orioles ahead, but Candiotti struck him out on a knuckler that giggled at Johnson as it danced by.

Baines, who had homered in each of the previous two games, almost gave the Orioles a 3-2 lead in the seventh after Belle had singled to open the inning. But Baines's long drive to center field died at the wall and Ryan Christenson ran it down.

That was Candiotti's last batter. He entrusted the rest of the game to the capable bullpen. T.J. Mathews, Buddy Groom and closer Billy Taylor were perfect over the last 2 2/3 innings, with Taylor pitching the ninth for his 12th save.

The victory was Oakland's ninth straight at home, its longest such streak since another nine-game run in 1992. The A's have won four in a row overall since returning from an 0-6 trip.

Orioles Notes: Miller said he plans to give Johnson a day off Saturday, Johnson's first since May 2. Rookie Tommy Davis, who was called up when Lenny Webster (sprained ankle) went on the disabled list, will get his first career start. . . .

Today is the day Webster is due to come off the disabled list, but the catcher said he is not close to being ready to play.

"It ain't going to happen," Webster said. "Right now I don't see any quick fixes. Being optimistic, I want to hope things heal and I can play soon. But being realistic, I don't think so. I can't take the pounding right now." . . .

Willis Otanez, whom the Orioles placed on waivers Wednesday, was claimed by the Blue Jays. Otanez was the starting third baseman most of April while Cal Ripken was on the disabled list. . . .

Bullpen coach Elrod Hendricks has been working with Arthur Rhodes on warming up quickly. Rhodes is sharing closer duties with Mike Timlin, and Miller said, "We can't afford somebody to take 15 minutes to get ready." Miller said Rhodes's problem is not with his arm, but in the pace of his warmup routine.

CAPTION: From left, A.J. Hinch, Bill Taylor, Eric Chavez and Miguel Tejada celebrate Oakland's ninth straight victory at home.