Hudson (5-2) allowed six hits, struck out five and walked none. The 38-year-old has allowed two earned runs or fewer in nine of his 10 starts, and he has pitched at least seven innings eight times.
Buster Posey drove in two runs, and Michael Morse and Pablo Sandoval singled home a run each to help the Giants (33-19) hold on to the best record in the majors. Jeremy Affeldt pitched a perfect eighth and Jean Machi pitched a perfect ninth to close out the Cubs, who will try again to win their first road series since last September in Wednesday's finale.
Jake Arrieta (1-1) gave up four runs and seven hits in six innings. He struck out six and walked one but got no support with Hudson on the mound.
San Francisco's most reliable starter also might be its most unlikely.
In a rotation that includes All-Stars Matt Cain and Madison Bumgarner and two-time NL Cy Young Award winner Tim Lincecum, Hudson has come back from a broken right ankle that cut his season short in Atlanta last year and emerged as one of baseball's best offseason additions.
Hudson, who will turn 39 in July, signed a $23 million, two-year contract with the Giants in November. He has a 1.92 ERA.
San Francisco is 5-0 in Hudson's home starts and 7-2 overall. That includes a rain-suspended game in his last start at Colorado, when he allowed one run in three innings.
The three-time All-Star showed no signs of rust when he returned to the mound at pitcher-friendly AT&T Park, retiring the first eight batters until Arrieta grounded a single up the middle. He allowed two baseunners in the third and a one-out double to Mike Olt in the fifth but quickly induced two outs each time.
Hudson left to a standing ovation from the announced sellout crowd of 41,060 after getting pinch-hitter Chris Coghlan to ground out with a runner on first to end the seventh.
San Francisco supplied all the runs Hudson needed in the first, when Angel Pagan singled and scored on Posey's sacrifice fly and Morse hit an RBI single.
Posey hit another sacrifice fly to left with the bases loaded in the fifth before Sandoval's bloop single extended San Francisco's lead to 4-0.
NOTES: Cain, who missed his last start with a strained right hamstring, will throw a bullpen session Wednesday and is expected to make his next start Saturday at St. Louis. ... Cubs reliever Wesley Wright was placed on the paternity leave list before the game, and Blake Parker was promoted from Triple-A Iowa. Parker allowed one hit in one inning of relief. ... Linececum (4-3, 4.55 ERA) starts for the Giants in the series finale Wednesday. The Cubs counter with RHP Edwin Jackson (3-4, 4.94 ERA).