KANSAS CITY, Mo. -- Danny Duffy bounced back after getting hit by a line drive that left him with numbness in his throwing hand in last start.
Duffy (4-5) pitched a strong six innings and ended a nine-start winless skid, and Jorge Soler and Nicky Lopez hit back-to-back RBI singles twice as the Kansas City Royals beat the Chicago White Sox 7-5 on Wednesday night.
"I'm really thankful that nothing bad happened and went out there and was able to compete again five days later," Duffy said.
The left-hander had all three of his pitches working. He scattered six hits and struck out five in sending Chicago to its season-worst sixth straight loss. With a heat index well above 100 degrees for most of the game, Royals manager Ned Yost was careful not to overwork him.
"It was hot, it was humid and he was starting to labor. He was getting worn out," Yost said.
The second of Soler and Lopez's consecutive two-out, RBI hits put Kansas City up 6-0 and gave Duffy some run support. The Royals had scored just 15 runs over Duffy's last eight outings.
Ivan Nova (4-9) lasted just 4 2/3 innings and struggled with his command. He allowed six runs and six hits with five walks. After giving up two runs in the first inning, Nova retired 13 of the next 14 batters before running into trouble again in the fifth with two outs, allowing five straight batters to reach base, three by walks.
"You don't want to give in in that situation," Nova said. "There were a couple of guys I felt like I made good pitches. To Gordon, a couple of pitches he didn't swing at. Again, I had tough luck in that situation today."
White Sox starters have struggled over the last three weeks, going 4-8 with a 5.11 ERA in the last 17 games. The last White Sox starter to throw more than six innings was Lucas Giolito on June 8.
Ryan Goins homered in his first major league game this season, a two-run shot into the Royals' bullpen in the sixth inning. That snapped a 15-inning scoring drought for the White Sox that dating to Monday's game.
The White Sox have scored just 18 runs in their last eight games and scored more than three runs for the first time since Independence Day. In six games since the All-Star break, Chicago has been outscored 44-12.
"We're going to keep playing; have to keep playing," White Sox manager Rick Renteria said. "That's the only thing left. If they keep battling like they did today towards the end, there's a little bit of the better life than we've seen over the last six days or whatever. There's still so much baseball left. We've got to get back on track."
The Royals have come roaring out of the All-Star break, winning five of six, for their best stretch of the season. Kansas City has also won consecutive series for the first time this season.
"It's awesome, man. It's great," Duffy said. "We're getting to that point where we're gaining confidence again. Guys are playing great. The offense is doing a great job of going up there every at-bat and having good at-bats and we're just kind of following them. As a staff, just kind of take the baton and run with it."
Soler and Lopez also slapped RBI singles in the first inning, the fourth time in six games since the All-Star break Kansas City has scored in the opening frame.
Whit Merrifield had three more hits and was on base five times, extending his hitting streak to 15 games. He also increased his league-leading hit total to 128. During the streak, Merrifield is hitting .410 (25-61).
"Another great day," Yost said. "Three hits, but it's just what he's been doing. You know, he's been as consistent as anyone in major league baseball the last couple years with his performance day-in and day-out."
Kansas City made three outs on the base paths and Chicago made two. Merrifield was thrown out trying to advance to third on a ground out in the first inning and was picked off between first and second to end the second inning. Soler ended the fifth inning when he was thrown out at second after Lopez's single. Leury Garcia was doubled off second on a line drive by James McCann, ending a threat by the White Sox in the fourth inning. Wellington Castillo was thrown out trying to advance to third on a passed ball in the fifth.
The Royals and White Sox conclude their four-game set with a day game Thursday. Brad Keller (5-9) will start for the Royals, looking to continue a strong July. Keller has allowed just two runs in 13 2/3 innings this month and is coming off a career-high eight innings Saturday in a 4-1 win over Detroit. Ross Detwiler will get the ball for the White Sox, making his third start of the season. The right-hander is 1-0 with a 5.02 ERA this year.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
Source: D-backs, righty Junior Guerra agree to deal
Right-hander Junior Guerra has reached agreement with the Diamondbacks on a one-year contract, a source confirmed to ESPN.
Keon Broxton returns to Brewers after whirlwind year
The Brewers have signed outfielder Keon Broxton after trading him a year ago.
Baseball's quietest man will be the reason for many Hall of Fame speeches
Last winter's surprise selection of Harold Baines could blow the doors to Cooperstown wide open Sunday night -- and beyond.
Royals sign former All-Star Trevor Rosenthal to minor league deal
The Kansas City Royals signed former All-Star reliever Trevor Rosenthal to a $2 million minor league contract that includes an invitation to big league spring training and up to $2.25 million in bonuses if he makes the major league roster.
Yankees GM rappels building, gets fan's message on Gerrit Cole
Brian Cashman saw a message taped to a 10th-floor window while prepping for a festival in Connecticut. "Please sign Gerrit Cole," it said. The GM's response: "I'm open to do clearly whatever, as always, is important for the Yankees."
Rays' Blake Snell strongly reacts to Tommy Pham trade on Twitch
Rays pitcher Blake Snell apologized for his reaction -- captured during a livestream on Twitch -- to news that teammate Tommy Pham was traded to San Diego.