MINNEAPOLIS - Luis Mendoza allowed one run over a career-high eight innings, Salvador Perez homered, and the Kansas City Royals won their fourth straight, hanging on to beat the Minnesota Twins 4-3 on Friday night.
The American League-worst Twins lost their third straight and are 2-7 in their last nine home games.
Mendoza (3-4) retired the final 13 batters he faced and 18 of the final 20. He struck out five and allowed one runner to reach second base.
The 28-year-old righty got his first win since May 13, and first as a starter since April 26.
Making his second start of the season, Brian Duensing (1-4) couldn't pick up the Twins' struggling rotation.
The converted reliever allowed three runs and eight hits and was removed after allowing three straight hits to start the fifth. Twins starters are 3-9 with a 5.80 ERA at Target Field over Minnesota's last 13 home games.
The Royals are 32-25 over their last 57 games and appear to only be getting better as their young hitters improve.
Justin Morneau had two hits for Minnesota and just missed a home run in the seventh when his long fly ball died at the wall in right-center.
Ryan Doumit had an RBI single for the Twins.
Before the game, Doumit signed a new $7 million, two-year contract with Minnesota. The 32-year-old catcher and designated hitter is hitting .272 with seven homers and 34 RBIs in his first season with the Twins.
NOTES: The Royals kicked off an 11-game trip that takes them to the All-Star break. ... Reliever Kyle Waldrop made his season debut for the Twins. He allowed no runs over 1 1-3 innings. ... The Twins and Royals play a split day-night doubleheader on Saturday to make up for a game postponed on April 28. ... Minnesota's Scott Diamond (6-3) will face Jonathan Sanchez in the first game. In only 10 starts, Diamond leads the Twins in wins and has the lowest ERA in the rotation. Sanchez is 1-3 with a 6.21 ERA and allowed six runs in 5 2-3 innings in his last start. ... Luke Hochevar takes the mound for Kansas City in the nightcap. The 28-year-old threw his second career shutout on Monday against the Rays. The Twins recalled Cole De Vries from Triple-A Rochester to start game two. De Vries was with the Twins earlier this season, going 1-1 with a 4.20 ERA in three starts.