Danny Duffy pitched 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.

Duffy (4-5) who took a liner off his throwing hand against Detroit in his last start Friday, scattered six hits and struck out five in sending Chicago to its season-worst sixth straight loss.

Duffy's strong start followed Jakob Junis' seven innings of one-run ball Monday and Glenn Sparkman's complete game shutout Tuesday.

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.

A.J. Reed hit a three-run homer, his first, with two outs in the ninth inning off Wily Peralta. Ian Kennedy entered the game and completed the one-out save, his 15th in 18 opportunities..

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. 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.

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 two consecutive series for the first time this season.

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).

BASERUNNING GAFFES: Kansas City made three outs on the basepaths 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.

UP NEXT: 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 righthander is 1-0 with a 5.02 ERA this year.