CHICAGO (AP) - Zac Gallen tossed the first true gem of his young career, and it seemed as if the Miami Marlins' rookie right-hander would have nothing more than another no-decision to show for it.
That all changed with one swing of the bat by Cesar Puello.
Gallen pitched seven innings of two-hit ball for his first major league win and Puello hit a two-run homer in the eighth inning as Miami won its second straight game, beating the Chicago White Sox 2-0 on Wednesday night.
Puello launched his fourth homer deep to left on the first pitch from Reynaldo Lopez, making a winner out of Gallen (1-2) in his sixth start since joining the Marlins rotation on June 20.
"I jumped right off the bench and threw my hands up in the air," Gallen said. "It was pretty cool that he crushed that one. I was happy for him to get a good pitch to hit and he smashed it."
The 23-year-old Gallen struck out nine, walked one and hit two batters in his longest outing to date as he lowered his ERA to 2.76. He threw 95 pitches and 68 strikes before being replaced by Nick Anderson in the eighth.
"I didn't feel the best, but I had good stuff," Gallen said. "Today it kind of all came together and it was nice."
Jon Jay singled off Anderson with two outs before Jose Abreu sent a deep drive to center that Puello caught at the wall.
Sergio Romo worked around two singles in the ninth for his 17th save in 18 chances.
Lopez (5-9) allowed four hits and struck out 10 in eight innings, matching the longest outing of his career. The right-hander walked one and hit one batter in his third straight solid outing.
Only one Miami player advanced as far as second base on Lopez before Puello went deep.
"He threw the ball great," manager Rick Renteria said. "Obviously one pitch.
"I think you can clearly see the trust and the confidence in his stuff. He has conviction in everything he's doing. He's attacking."
Lopez threw 76 of 97 pitches for strikes on Wednesday and retired 21 of 25 Miami batters through seven innings before hitting Harold Ramirez to lead off the eighth. After Jorge Alfaro struck out, Puello connected on a breaking pitch.
"I cannot tell you if it was a curve or a slider, I just reacted," Puello said. "I had a hitting coach tell me just see the ball and hit it."
Gallen was in trouble in the third when he hit Adam Engel and Abreu with pitches and gave up a single to Leury Garcia, loading the bases with two outs for the White Sox. Yoan Moncada flew out to center on a 3-0 pitch to end the threat.
"I felt like once I got through that, I could navigate through the rest of the lineup," Gallen said.
Ryan Goins lined a double to the wall in left to lead off the seventh, but Gallen struck out James McCann and A.J. Reed before his final hitter, Yolmer Sanchez, grounded out.
Gallen made a minor mechanical adjustment that paid off on Wednesday. "I turned my foot in a little more," he said. "It kind of helped me keep my direction toward home plate."
BETTER SINCE THE BREAK
Lopez is 1-1 with a 1.71 ERA in three starts since the All-Star break.
The White Sox promoted Nick Hostetler, the team's director of amateur scouting, to special assistant to general manager Rick Hahn. Hostetler will focus on major league scouting.
Marlins: Rojas was back in the starting lineup at shortstop for the first time since leaving Saturday's game against the Dodgers in Los Angeles with a right shoulder strain.
White Sox: SS Tim Anderson (right high ankle sprain) was scheduled to begin a rehab assignment at Triple-A Charlotte on Wednesday in the DH slot. There's still no timetable for his return, but manager Rick Renertia hopes "it won't be an extended rehab." ... OF Eloy Jimenez (right ulnar nerve contusion) hit off a tee and played catch to 90 feet on Wednesday. Taking batting practice will be a next step.
Marlins: Following an off-day Thursday, RHP Sandy Alcantara (4-9, 4.25) faces Arizona ace RHP Zack Greinke (10-4, 2.93) on Friday in Miami.
White Sox: All-Star RHP Lucas Giolito (11-4, 3.12) takes the mound against Minnesota RHP Jose Berrios (8-5, 2.96) on Thursday in the opener of a four-game series. Giolito hasn't won since June 30 and is 0-2 with a no-decision in his last three starts. Berrios is 0-3 with four no-decisions in his last seven outings, despite a 2.62 ERA during the span.