BALTIMORE -- Even when he struggled earlier this season, Corey Patterson remained confident in his ability.
His upbeat attitude and self-assuredness were apparently justified.
Patterson hit a three-run homer in the second inning and drove in a run in the sixth with a groundout before leading off the eighth with a single against Elmer Dessens (2-3). He stole second as Kevin Millar struck out and went to third on a grounder before scoring on a single by rookie Brandon Fahey.
"You like him better every time you see him, don't you? I know I do," Orioles manager Sam Perlozzo said.
There was a time earlier this season when Perlozzo wondered if Patterson would ever be a significant contributor to the team.
Patterson was batting .067 on April 18 as a part-time player. At that point, it seemed the offseason trade that brought him to Baltimore from the Chicago Cubs would be a bust.
"Probably a little bit, but in fairness to him I didn't give him a shot. I didn't play him much," Perlozzo said.
Patterson is now a regular in the lineup, and over his last 16 games he's 20-for-58 (.345). His .288 batting average is only a small portion of how he has helped the Orioles -- Patterson has also played solid defense in center and has a team-high nine steals.
"At the beginning of this year, I went over a lot of different scenarios in my head. I told myself how I was going to respond and react to it, and sure enough it happened," he said, referring to his slow start. "But you don't worry about it, you don't dwell on it. My goal this year was to come in and be positive regardless of what the situation was."
Perlozzo never lost faith in Patterson, and his patience has paid off.
"I felt like his chance would come," the manager said. "Give credit to the kid. His mental attitude was never down."
Ramon Hernandez had two hits and scored twice for the Orioles, who had lost six of seven and nine of 11.
Emil Brown homered and drove in two runs for the Royals, whose modest three-game winning streak ended. Kansas City is a major league-worst 2-15 on the road.
"People say you always have a little different feel when you're on the road. I never could buy into that," Royals manager Buddy Bell said. "The game is pretty much the same regardless of where you play unless you're in Coors Field or something like that. I don't see why we should have a different feel."
Down 3-1, Kansas City got six hits in a four-run sixth. After Reggie Sanders singled and went to third on a double by Brown, Sendy Rleal replaced starter Erik Bedard and gave up an RBI single to Tony Graffanino.
Baltimore tied it at 5 in the bottom half. A walk and two singles loaded the bases against starter Runelvys Hernandez, and Patterson drove in a run with a grounder off Andrew Sisco before Millar hit a sacrifice fly.
"A four-pitch walk in the sixth," Bell lamented. "Nobody out, a four-pitch walk after we score four."
Kansas City wasted a leadoff double by Graffanino in the eighth when Angel Berroa failed to advance him with a bunt.
"Guys who are pretty good bunters just weren't able to do it tonight," Bell said.
Brown's homer gave the Royals a 1-0 lead in the second inning. Patterson hit his fourth home run in the bottom half, a shot over the right-field scoreboard that followed singles by Ramon Hernandez and Conine.
- Orioles starters have gone eight straight games without a win.
- Sanders had missed six consecutive games with a tight left hamstring.
- Baltimore's Miguel Tejada was in a 3-for-33 skid before hitting a seventh-inning single.