Right-hander Allen Ripley and two relievers held San Francisco to four hits and Steve Henderson hit a two-run single in Candlestick Park as Chicago won its third straight and 10th of its last 15.
Ripley (2-0) was impressive in his second start this season, allowing three hits in seven innings. After shutting out Houston for six innings in his other start, Ripley gave up the Giants' run in the fifth. Lee Smith and Willie Hernandez relieved.
The Cubs scored in the fifth after Larry Bowa singled with one out and moved to third on Ryne Sandberg's single. Sandberg stole second and Henderson scored both with a ground single to right off Atlee Hammaker (2-2).
In the home fifth, Dave Bergman led off with a walk, went to third on Jim Wohlford's hit-and-run single and scored on Johnnie LeMaster's sacrifice fly.
Ripley, trying for his first complete game since April 28, 1981, when he was the Giants, was lifted for a pitch hitter in the eighth. Smith worked 1 2/3 innings, giving up a leadoff double to Joe Morgan in the ninth. Hernandez got the final out for his fifth save.
Ripley said that beating his former team wasn't what made the game special. "Satisfaction is beating any big-league team," he said. Ripley, who had an 11.32 ERA after seven relief appearances, said he asked Manager Lee Elia "for a chance to get my stuff going."