Houston's run total tied for the second-most in team history; the Astros scored 23 against Baltimore in 2019.
"I don't think I've been on a team that scored that many runs," said Houston's Dusty Baker, in his 25th season as a manager following a 19-year playing career.
"It was good to get out of here with a split. It was good the fact we came back the last two games because they were looking at a sweep," he said.
The Astros had 25 hits, tying a franchise record, according to research from ESPN Stats & Information, as Bregman, Kyle Tucker and Christian Vazquez tied career highs with four each. Chas McCormick, who had five RBIs, and Trey Mancini homered for the AL West leaders.
White Sox second baseman Josh Harrison pitched the ninth inning and allowed four runs and six hits in his third mound appearance of the season.
"I hate that rule you can pitch a position player," White Sox manager Tony La Russa said. "There's got to be a way to avoid that at some point when you get far down. I think it's a travesty for the game. I don't think fans enjoy it.
"But that's our fault. They beat us up. They deserve the credit. We take the heat," he said.
White Sox pitchers allowed 21 earned runs, tied for the most in franchise history since the stat became official in 1913, according to ESPN Stats & Information.
Bregman, who had an eight-game hitting streak snapped Wednesday, scored four times. He hit a pair of two-run drives for the fifth multihomer game of his career and his first since May 28, 2019, against the Cubs.
"I've really been just working hard in the cage trying to beat it into my head to stay closed with every swing I take," Bregman said. "Today was better."
Bregman's big day actually didn't start out so well. He was called out on strikes to end the first and had words with plate umpire Ramon DeJesus, who then ejected Astros hitting coach Alex Cintron.
"I don't want to say anything because I don't want to get fined," Bregman said.
By the end of the afternoon, Bregman was in a much better mood and signed autographs for fans after the final out.
The Astros won for the sixth time in their past eight games. They improved to 34-19 against teams with a .500 record or better.
Gavin Sheets got a career-high four hits for the White Sox, who lost for the second day in a row and split the four-game series.
"Just a brutal day," La Russa said.
After totaling eight runs in the first three games of the series, the Astros broke loose.
"We made a statement," McCormick said. "We have a good offense. They're a good team. We were a little upset they beat us the first two times."
Giolito lasted three-plus innings, matching his shortest start of the season against Cleveland on July 22, when he allowed six runs on nine hits.
Giolito has allowed 15 runs on 15 hits in two starts against the Astros this season.
The Associated Press contributed to this report.