Geraldo Perdomo and Carson Kelly each had three RBIs as fourth-place Arizona handed Chicago its eighth loss in 10 games. The reigning AL Central champions dropped one game below .500 at 63-64.
''The worst thing you can do is get frustrated and depressed, discouraged,'' White Sox manager Tony La Russa said. ''Get angry. Do something about it tomorrow. That's the message.
''Get some adrenaline pumping and get back to even.''
The speedy McCarthy also stole two bases and scored three times. The 25-year-old outfielder is 19 for his last 49 (.388), raising his season batting average to .292.
''Just a very energized player that's putting a lot of concepts together,'' Arizona manager Torey Lovullo said. ''I think there was a lot of raw talent when he entered the system. He's done a really god job of slowing things down when needed and being very competitive on both sides of the ball.''
Drafted by Arizona with the No. 39 pick in 2018 out of the University of Virginia, McCarthy said he's getting comfortable and learning to exploit his chances.
''I'm just trying to hit the ball hard in the middle of the field,'' McCarthy said. ''I just got a few lucky hits, but it contributed. We got a win and it's all good.''
Merrill Kelly surrendered Gavin Sheets' three-run homer in the first, but allowed just one run over the next 6 1/3 innings in his first win since July 25. Kelly (11-5) yielded five hits and struck out seven while stopping a string of five straight no-decisions.
''I would probably say the sinker,'' Kelly said of his most effective pitch. ''It had a lot of movement on it late. I was able to locate it pretty well.''
Emmanuel Rivera, Ketel Marte and Alek Thomas each drove in a run for the Diamondbacks, who won their second straight on the South Side.
Elvis Andrus had two hits for the White Sox. Davis Martin (2-4) was charged with five runs, four hits and four walks in three innings in his fifth career start.
The Diamondbacks opened a 7-3 lead on Perdomo's RBI single in the eighth, but the White Sox responded with two in the bottom half.
Mark Melancon relieved Kelly and gave up an RBI double to Romy Gonzalez and run-scoring single to Jose Abreu. Joe Mantiply then came in and retired Eloy Jimenez on a fly ball to right.
Arizona put it away with three in the ninth. Kelly hit a two-run single, and Thomas added a sacrifice fly.
The White Sox got off to a nice start when Sheets lined his 10th homer into the bullpen in right, making it 3-0 in the first.
But Arizona came back with five runs on just two singles in a sloppy second by Chicago. Martin walked three in the inning and another runner reached on interference by rookie catcher Carlos Perez.
Perdomo drove in two runs with a single, tying it at 3. Kelly scored on Perez's passed ball, and Rivera's groundout drove in Perdomo for a 5-3 lead.
WELCOME TO THE SHOW
Perez had a memorable night in his second major league game and first start behind the plate.
The 25-year-old from Venezuela singled for his first hit in the second. In the top of the inning, he was charged with interference with Daulton Varsho at the plate, and he had a costly passed ball.
In the third, Perez got crossed up with third baseman Leury Garcia on Varsho's infield popup. The ball dropped for a double.
Perez made his big league debut Friday as a pinch hitter in the ninth.
LA RUSSA'S OK WITH JOSE
Don't blame 77-year-old Hall of Fame manager La Russa for Chicago's sour season, says three-time All-Star and 2020 AL MVP Abreu.
''Everybody knows how the old guy is and what he represents,'' Abreu said through a translator before Saturday's game. ''We all love him. His sense of unity and his sense of family is something that is around us, is around this team.''
LYNN TO BEREAVEMENT LIST
The White Sox placed Lance Lynn on the bereavement list. The 35-year-old righty is 3-5 with a 5.00 ERA in 14 starts after returning from left knee surgery, but is 2-1 with a 2.73 ERA in his last five outings.
White Sox: Placed 3B Yoan Moncada on the 10-day IL with a strained left hamstring. Moncada, who has been limited to 80 games this season, suffered his most recent injury Thursday in Baltimore. ... Reinstated INF/OF Garcia from from the 10-day injured list and started him at third. ... CF Luis Robert (left wrist sprain) was held out of the lineup again because of difficulty in swinging a bat. ... LH reliever Aaron Bummer (strained lat left) threw a 20-pitch simulated game on Saturday. Bummer, who hasn't pitched since June 7, expects to go on a rehab assignment at Triple-A Charlotte in the next few days. ... Reliever Joe Kelly left with a bruised knee in the eighth after McCarthy's fourth hit bounced off him.
Arizona right-hander Zach Davies (2-4, 3.86 ERA) faces Chicago ace Dylan Cease (12-6, 2.27 ERA) on Sunday.
Copyright 2023 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.