SAN FRANCISCO - Cubs manager David Ross sent a text message to Nico Hoerner a night earlier letting the second baseman know he would be held out starting the series opener in San Francisco but to be ready coming off the bench.
"OK, thanks skip," the matter-of-fact reply went.
"I know he's mad," Ross said Friday night.
Then the Cubs called on him and pinch-hitter Hoerner delivered a go-ahead two-run single in the seventh to back Marcus Stroman's fifth straight winning start and Chicago beat the San Francisco Giants 3-2 to snap a four-game losing streak.
Stroman (7-4) has won each time out since a loss at Minnesota on May 14. He allowed two runs on six hits over 6 2/3 innings, struck out five and walked four in his team-leading 14th start of the year.
"It's like playing a video game, it really is, the way he's able to throw the ball both sides of the plate with his sinker, his slider, curveball, change-up," catcher Tucker Barnhart said. "It's been so much fun to catch."
Giants right-hander Anthony DeSclafani (4-6) gave up Seiya Suzuki's leadoff single in the seventh then walked Ian Happ before manager Gabe Kapler turned it over to reliever Ryan Walker. He retired Dansby Swanson on a flyball then plunked Matt Mervis. Then came a well-rested Hoerner, who had most of the evening off.
"I think he had probably 24 hours to stew on me not putting him in the lineup, so he just had some anger to take out," Ross said. "He likes to play."
Barnhart also had an RBI single in the decisive seventh on a night Ross shook up his lineup trying to "create a spark" given the recent offensive struggles. Chicago did just enough for Stroman.
Thairo Estada had an RBI double off Stroman in the third and Joc Pederson contributed four singles against his former club but the Giants had their three-game winning streak snapped — an RBI infield single in the seventh that was won on replay review after an initial call he'd been thrown out at first. They are making a quick stop at home this weekend before hitting the road again to St. Louis and Los Angeles.
Adbert Alzolay retired Brandon Crawford on a called third strike to end the game for his third save as the Cubs improved to 8-7 against the NL West.
San Francisco has allowed five or fewer runs in 15 straight games against the Cubs — the Giants' longest such run since also limiting them to five or fewer in 16 consecutive matchups as the New York Giants from July 1929-May 1921.
A postgame drone show was canceled because of a technical issue.
Cubs: Ross had wanted to get Hoerner a day off to clear his mind and get off his feet after going 0 for 8 over the previous two games and with the Cubs in the middle of a 10-day West Coast trip with no days off. He singled again in the ninth.
Giants: 3B J.D. Davis was a late scratch with right hip tightness and Casey Schmitt replaced him. ... C Joey Bart was in San Francisco to test his strained left groin and be evaluated. ... LHP Alex Wood (low back strain) threw off a mound and RHP Ross Stripling (low back strain) is scheduled for a bullpen session perhaps as soon as Sunday.
The Cubs recalled INF Nick Madrigal from Triple-A Iowa and optioned INF Miles Mastrobuoni to Iowa. Madrigal started at second and led off, going 0 for 3 with a walk and strikeout.
RHP Kyle Hendricks (0-2, 4.70 ERA) pitches for the Cubs on Saturday having gone 5-2 with a 2.29 ERA for his career in 10 previous outings vs. San Francisco for his career. The Giants announced postgame RHP John Brebbia (2-0, 3.65) would start.