Shields allowed three hits over three scoreless innings with two strikeouts. His next start will come Monday in the season opener against the Dodgers.
"Three innings was kind of the ideal, I think I ended up throwing 30-35 [pitches]. I think I got some good work in today. I felt really good in my delivery today. Overall, my body felt really good. I'm ready to go," Shields said.
"He felt as though he's in a good spot," manager Bud Black said. "I thought his fastball had life to it, he had good location, threw some devastating changeups and some good cutters. He pounded the strike zone."
Samardzija allowed five runs on six hits in four innings with three strikeouts. He'll start Monday against the Royals to get the season underway.
"Everyone's feeling good right now and the team is where we need to be," Samardzija said. "I think everyone is ready to get this thing going, for sure."
Solarte had three hits for the Padres, while Carlos Quentin and Will Venable each drove in a run.
Adam Eaton, Micah Johnson and Tyler Flowers each had two hits for the White Sox.
Up next: The Padres play their final Cactus League game at 12:05 p.m. PT on Thursday, when they face the Brewers at the Peoria Sports Complex. This will be the final spring tuneup for Padres pitcher Tyson Ross, the No. 2 starter in the team's rotation. Ross looks regular-season ready, as he's allowed two earned runs and struck out 17 in his past two outings, spanning 11 innings. He had 12 strikeouts the last time out against the Rangers over six innings. The game will be broadcast live on an exclusive free webcast on padres.com.
Corey Brock is a reporter for MLB.com. Keep track of @FollowThePadres on Twitter. This story was not subject to the approval of Major League Baseball or its clubs.