The Cubs had a chance to score in the fourth but Yoenis Cespedes cut down Castro trying to come home from second on Alfonso Soriano's single to left field. Soriano was later thrown out by Norris attempting to steal second, ending the inning.
"I didn't think, when the ball was hit, he had a chance," A's manager Bob Melvin said of Cespedes. "That was a spectacular throw. I don't know if there's a left fielder with a stronger arm."
Castro walked to open the inning and advanced when Nate Schierholtz grounded out.
"That was perfect throw," Norris said. "It took one bounce and hopped right to my stomach."
The A's also had a potential run thrown out on the bases. Chris Young singled with one out in the seventh but was caught stealing by Castillo.
Pedro Strop pitched a scoreless ninth in his Cubs debut as the team matched a franchise record for players used before the All-Star break with 41. The Cubs also extended their franchise record by using 23 pitchers before the break.
NOTES: Cubs OF Brian Bogusevic left after the top of third inning with left hamstring tightness. ... The A's optioned C Stephen Vogt to Triple-A Sacramento to make room for Straily. ... The Cubs announced that RHP Carlos Villanueva (2-4, 3.45 ERA) will start Sunday's game against Pittsburgh, filling the spot vacated when RHP Scott Feldman was traded to the Baltimore Orioles. Villanueva started the year in the rotation, but went to the bullpen when RHP Matt Garza came off the disabled list. ... RHP Jeff Samardija (5-7, 3.34 ERA) will take the mound Friday night against the Pirates at Wrigley Field. He's 4-2 with a 1.56 ERA against the Pirates in his career, though just 1-2 against them this year. ... LHP Tommy Milone (7-7, 4.17 ERA) will start for the A's in Kansas City. He's 1-2 with a 5.96 ERA over his last four starts. ... According to Sports Features Group, the last time the Cubs lost a 1-0 game, with the lone run scored on a passed ball, was July 1, 1962, in Milwaukee.