KANSAS CITY, Mo. -- Giving up only eight earned runs in his previous 34 innings hadn't produced a win, so Erik Bedard took the next logical step.
He didn't give up any runs at all.
Outpitching Kansas City's Gil Meche, Bedard allowed four hits in eight innings Wednesday night and led Baltimore to a 3-0 victory, the fifth straight win for the Orioles and the seventh loss in a row for the hapless Royals.
"It's always tough when it's 0-0 late in the game," Bedard said. "But you just stay in there and battle and good things will happen."
Winless since April 18, Bedard (4-3) had five strikeouts and two walks in his longest outing of the season. Only one runner got past second against the left-hander.
Jay Payton broke up the scoreless duel with an RBI single in the eighth and Nick Markakis, inserted into right field for defensive purposes, hit a two-run homer in the ninth off Zack Greinke.
Meche (3-4) bounced back from his worst outing of the year to throw one of his best games since joining Kansas City.
"Gil was terrific," said Royals' manager Buddy Bell, who was ejected in the top of the eighth for arguing with Marty Foster after the home plate umpire had thrown out Emil Brown for arguing a called third strike.
"It's hard to win when you don't score any runs," Bell said. "He gave us what we needed, but we couldn't do anything with Bedard."
After matching Bedard with seven shutout innings, Meche departed when Payton grounded an RBI single through the hole into left with one out in the eighth. The right-hander gave up four hits and one run in 7 1/3 innings. He walked four and had five strikeouts after allowing seven runs and 11 hits in 4 1/3 innings his previous start.
"Coming out of a slump against Bedard is not an easy thing to do," Meche said. "He just beat us."
Chris Ray pitched a perfect ninth for his 12th save in 15 chances.
Rain delayed the game at the start 1 hour, 36 minutes, then the pitchers did their best to get the fans home quickly. The game took 2:31.
It had been so long since his last win, Bedard said he couldn't remember when it happened.
"I know it was a long time ago," he said.
But frustration, he added, is "part of the game."
"It happened the first two years. It happened last year. It happens every year," he said. "You go through a span where you don't win for four or five games in a row, then you win five in a row. It's part of the game."
Ramon Hernandez walked leading off the eighth for the Orioles, whose five-game winning streak is their longest of the season. Corey Patterson was safe at first when he laid down a bunt and beat the throw to the bag.
The runners moved up on Brian Roberts' sacrifice bunt, and then Payton's single broke the scoreless tie.
Greinke came in for Meche and struck out the next two batters, Miguel Tejada and Aubrey Huff, on six pitches, but surrendered a single to Kevin Millar ahead of Markakis' home run.
Meche's lower back had tightened up in his previous start, rendering him ineffective. But facing a Baltimore lineup which had scored 31 runs and hit .315 while winning four in a row, he was dominant for seven innings.
Mora singled leading off the second, then the right-hander retired 16 in a row before walking Roberts to lead off the sixth.
The seven-game skid is the longest of the year for the Royals, who again have reclaimed the worst record in the majors. In getting swept three games by the Orioles, the Royals managed only three runs and 12 hits. They now begin a seven-game road trip to Tampa Bay and Cleveland.
"They're all frustrated," Bell said of his players. "And I'm right there with them."
Baltimore LHP Jamie Walker was passing out cigars celebrating the birth of his fourth child. He'd been away for two days to be with wife Natalie. ... Bell hadn't been thrown out of a game since April 9 at Toronto.