CHICAGO -- Rookie J.P. Howell did something no other Kansas City pitcher has been able to accomplish this season. He beat the Chicago White Sox in their home ballpark.
Howell and three relievers combined on a two-hitter Thursday night as Kansas City stopped Chicago's seven-game winning streak with a 4-2 victory.
"We don't mail it in ever. Whatever is driving these guys to finish the season we just need to do that for another three weeks," Royals manager Buddy Bell said.
In his third start since his recall from the minors, Howell switched speeds and allowed two hits in six strong innings. One of the runs he yielded came on Pablo Ozuna's steal of home.
Against Chicago on June 22s, Howell gave up five runs and seven hits over five innings in a loss.
"It seems like he's grown up. It seems like he has so much confidence," Bell said.
The Royals were 0-8 at Chicago this year before winning in their final road game against the White Sox this season. Kansas City is 3-12 against the White Sox overall.
"It wasn't like it was easy, they didn't hand it to us," Howell said. "We are playing a lot better than how we were before. We are trying to figure it out."
Angel Berroa hit a go-ahead, two-run homer and also squeezed in a run with a bunt.
"The at-bat before, I hit the homer so they didn't expect me to bunt the ball," Berroa said. "My boss gave me the sign, and I did the job."
Howell, who has shuttled between Triple-A and the majors this season, outpitched Freddy Garcia (12-8) to get his first win since his big league debut on June 11.
"The debut was the first one and this was the second one, so it's been a while," Howell said. "A real long while, so I'm happy."
Howell walked five and struck out five.
"It was a combination of us not swinging the bats and he was throwing it well," said Chicago's Chris Widger, who left with a mild hamstring strain in the seventh.
Andrew Sisco, Ambiorix Burgos and Mike MacDougal pitched one hitless inning each. MacDougal retired the side in the ninth for his 18th save in 21 chances.
Howell didn't allow a hit until Widger doubled past third with two outs in the fifth, and the White Sox took a 2-0 lead on Scott Podsednik's RBI single and Pablo Ozuna's steal of home.
But the Royals came back in the sixth on Mark Teahen's RBI grounder and Berroa's two-run homer. Kansas City made it 4-2 in the eighth on Berroa's squeeze bunt off Luis Vizcaino.
Garcia gave up three runs and eight hits in seven innings.
"It's hard to win when you get two hits," Chicago manager Ozzie Guillen said. "Freddy didn't have anything on the ball today. He made one mistake. ... But he still went out and pitched well."
After Widger doubled in the fifth, Ozuna walked and Podsednik hit an RBI single to center. When Howell threw to first to check Podsednik, the major league stolen base leader, Ozuna raced home from third, beating the throw from Stairs at first with a good slide to make it 2-0.
Chicago's AL Central lead over second-place Cleveland was sliced to 8½ games with 23 to play.
"It's another game off the schedule," Widger said, adding that the White Sox are trying not to look too far ahead. "Until they tell us it's clinched or everybody else is mathematically eliminated, we'll try to win every game."
Notes: Chicago 1B Paul Konerko was 0-for-3 with a walk and two strikeouts, ending his 12-game hitting. He had homered in four straight games. ... Garcia has given up a team-high 23 homers, one more than last season. ... Widger got his hamstring injury while twice sliding back into first base to avoid being doubled up. ... The previous White Sox player to steal home was Brian Daubach against the Twins in 2003. ... It was the first win for a Royals starter since Jose Lima beat the Red Sox on Aug. 25.