Zack Greinke didn't allow a run until making his final pitch before a rain delay in the seventh inning, and the Kansas City Royals kept the Pittsburgh Pirates from sweeping an interleague series for the first time since 2001 by winning 3-2 on Sunday.

David DeJesus hit a solo homer off Charlie Morton (0-1) and drove in two run to support Greinke (10-3), who gave up seven hits in 6 1-3 innings ahead of the 59-minute delay. Greinke became the AL's fourth 10-game winner, striking out three and walking none while lowering his major league-leading ERA to 1.95 during a second successive effective start.

The Royals, ending 8-10 against the NL, halted a three-game losing streak and made sure the Pirates didn't have their best record since interleague play began in 1997.

Greinke was 8-1 with an 0.84 ERA in his first 10 starts, went 0-2 with a 5.19 ERA in his next four but has bounced back to go 2-0 with three earned runs allowed in 14 1-3 innings in his last two. He lasted eight innings while beating the Astros 2-1 on Tuesday.

Greinke wasn't overpowering, but didn't allow an extra-base hit until Andy LaRoche _ the last batter he faced _ tripled off the right-field wall during a driving rain in the seventh to score brother Adam LaRoche, who singled. Immediately after Adam LaRoche made it down the muddy third-base line, plate umpire Tom Hallion stopped play.

Once play resumed, reliever Jamey Wright got Jason Jaramillo to ground out, scoring Andy LaRoche with a run that was charged to Greinke. Wright and John Bale combined for a scoreless eighth before Joakim Soria retired all three batters he faced for his ninth save in 11 opportunities.

The Pirates, who haven't had an interleague sweep since taking three from the Indians in 2001, went 8-7 against the AL to match their club-best 2001 record. They went into this season with a major league-worst .312 winning percentage in interleague play.

Pittsburgh had won four in a row since losing five in succession but couldn't match their five-game winning streak from May 16-20, their longest this season.

DeJesus broke out of an 0-for-12 slump with a solo homer, his sixth, to start the fourth. An inning later, Alberto Callaspo and Mark Teahen doubled in succession. Teahen scored when first baseman Adam LaRoche's throw to the plate was late on DeJesus' grounder, making it 3-0.

Greinke, allowing two runs or fewer for the 12th time in 16 starts, didn't need any more scoring after that in his first career start against Pittsburgh.

NOTES: Ian Snell, the former Pirates' No. 2 starter who was demoted Thursday after deciding he needed a change of scenery, struck out 13 in a row after walking the leadoff batter Sunday for Triple-A Indianapolis against Toledo. He finished with 17 Ks and two hits allowed in seven innings, throwing 70 of 108 pitches for strikes. Indianapolis won 2-1 in 10 innings. ... The Pirates were 6-3 against the AL at home. ... Kansas City won for only the 14th time in 45 games since May 8. The Royals are 9-29 when they score three runs or fewer. ... Pirates C Ryan Doumit, out since April 20 with a broken right wrist, won't return until after the All-Star break.