It was a powerful end to a difficult city series for the Chicago Cubs.
Rizzo, Castro and Olt helped the Cubs stop a four-game slide with a 12-5 victory over the Chicago White Sox on Thursday night.
"We had some good at-bats, some big at-bats in some key situations," rookie manager Rick Renteria said, "and then we got some thump, got some balls hit well."
Rizzo had three hits and scored three times as the Cubs salvaged the finale of the four-game set against their crosstown rivals. Olt, Ryan Kalish, Nate Schierholtz and Junior Lake had two hits apiece in a game that took 4 hours, 7 minutes.
The Cubs put it away with five runs in the eighth, highlighted by Olt's first career grand slam. Maikel Cleto also hit Welington Castillo with a bases-loaded pitch, ending the White Sox bullpen's shutout streak at 23 1/3 innings.
Olt also batted with the bases loaded in the third and popped out to shortstop.
"I was upset with myself because with less than two outs, I've got to at least get someone in, move someone over," he said. "I've got to do my job. To get another chance late in the game and come through like that definitely helped."
The Cubs finished with 15 hits after managing just five runs and 12 hits in the first three games against the White Sox.
"We did more damage than them today," Rizzo said.
Alexei Ramirez had four singles for the White Sox, who had won four in a row. Conor Gillaspie went 2-for-4 with a walk in his first action since he was activated from the disabled list Wednesday after being sidelined with a bruised left hand.
The White Sox got Adam Dunn back after he missed a game due to a bruised right calf, but rookie slugger Jose Abreu was hampered by a left ankle injury. Abreu, who is off to a terrific start with 12 homers and 35 RBIs, hobbled down the line each time he put the ball in play.
"He just seemed like he was limping a little bit tonight; that's why in the end there I (took) him out," said manager Robin Ventura, who had Marcus Semien hit for Abreu in the ninth. "But he says he's fine."
Abreu did not speak with the media after the game.
The Cubs jumped on Scott Carroll (1-2) for four runs in the third, sending 10 batters to the plate. Luis Valbuena singled in Kalish before Rizzo hit a drive to center for his seventh homer. Lake added a bases-loaded walk to make it 4-2.
Rizzo also walked and scored when Castro connected in the fourth. Castro went 1-for-15 with two walks during the Cubs' losing streak.
Carroll departed after Olt and Lake started the fifth with consecutive singles. The 29-year-old rookie was charged with 11 hits and six runs after he pitched well in each of his first two major league starts.
"It was just a situation where I didn't have my best stuff tonight," Carroll said. "I left a few pitches up when I obviously didn't have the ability to do so. Kind of just fighting it the whole time."
The White Sox got two runs back in the fourth on RBI singles by Gillaspie and Tyler Flowers. But five Cubs relievers combined for five innings of one-run ball after Jake Arrieta's shaky outing. Brian Schlitter (2-0) got five outs for the win.
Arrieta allowed four runs, three earned, and nine hits in four innings. He pitched 5 1/3 scoreless innings in a no-decision against St. Louis on Saturday in his first start of the season.
White Sox ace Chris Sale (left arm) felt fine after throwing a bullpen session Wednesday, and Ventura said the left-hander probably will throw again Saturday. "He's progressing. He doesn't feel anything," Ventura said. "In talking to him, he says everything feels good." Ventura said he thinks the team will have a better idea this weekend about a rehab schedule for Sale. ... Cubs general manager Jed Hoyer said Jeff Samardzija's 126 pitches Monday night "is just a story that should probably die." He said the front office, Renteria and Samardzija are all on the same page. ... The Cubs send RHP Jason Hammel (4-1, 2.43 ERA) to the mound when they open a weekend series at Atlanta on Friday night. RHP Julio Teheran (2-2, 1.80 ERA) is slated to pitch for the Braves.