ST. LOUIS -- Less than a year removed from a broken leg, Tim Hudson might be pitching the best ball of his career.

The San Francisco right-hander was in shutdown mode again Sunday, allowing just three hits in seven shutout innings as the Giants blanked the St. Louis Cardinals 8-0 at Busch Stadium to finish an impressive weekend series.

Hudson (6-2), who walked two and fanned six, lowered his earned run average to 1.75. The 38-year old Hudson has issued just eight free passes over 77 2/3 innings.

"He got better as he went," San Francisco manager Bruce Bochy said of Hudson. "Early, he had trouble getting the ball where he wanted a couple of times, but he adjusted and got in a good groove after that."

A sinker-slider pitcher who gets his strikeouts but rarely tops 90 miles per hour, Hudson has allowed only 59 hits and four homers. He only got eight groundouts, but rarely allowed hard-hit balls.

"They're able to put it in play, but I've been able to stay out of the middle of the plate," Hudson said. "I've been able to miss barrels. There comes some luck with it. They hit some balls hard, but right at guys."

Hudson's only stressful situation came in the bottom of the third with two outs, when he beaned first baseman Allen Craig with an 89-mile per hour fastball to load the bases for right fielder Oscar Taveras.

Chagrined that his pitch got away, Hudson almost ran to the plate to see if Craig was all right. His mind perhaps put at ease by Craig staying in the game, Hudson retired Taveras on a first-pitch grounder to second.

After the inning, Hudson walked over to Craig between first and second to apologize for the errant pitch.

"He's a tough son of a gun," Hudson said of Craig. "I was just trying to throw a fastball inside, the first one I threw inside to him all day, and I don't know what happened. I'm just really glad he is all right."

Craig was removed after six innings, although it was largely because the Cardinals (30-27) were already out of contention.

The Giants pecked away at Lance Lynn (6-3) with a barrage of singles, reaching him for eight hits and seven runs, four of which were earned. Lynn, who walked four and struck out two, departed after 3 1/3 innings, his shortest start of the year.

Getting an extra out in the first after second baseman Kolten Wong bobbled a bouncer by left fielder Gregor Blanco, San Francisco capitalized. First baseman Joaquin Arias broke out of a 4-for-40 skid with a two-run, two-out single to cap a four-run uprising.

Arias later added another RBI hit in the third and singled again in the seventh, capping a 3-for-4 afternoon.

"That's how we roll," said center fielder Angel Pagan of Arias' effort. "When one guy goes down, someone else picks him up."

Lynn hyperextended his knee covering first on a run-scoring fielder's choice by shortstop Brandon Crawford, two batters before Arias' first hit since May 9. Lynn, who blanked the New York Yankees Tuesday night on five hits, threw just 46 of his 88 pitches for strikes.

"It's hard to pitch on one leg," Lynn said. "They had three or four groundball hits, a broken-bat hit ... if an out is made on (Wong's error), we're out of the inning with one run."

Catcher Buster Posey collected three hits and an RBI for the Giants, while Pagan and Blanco bagged two hits each. San Francisco (37-20) took three of four from St. Louis, scoring 23 runs in the process.

NOTES: San Francisco C Buster Posey (lower back) returned to the lineup after missing the series' first three games. ... St. Louis C Yadier Molina got the day off after catching the last six games. Molina is just 2-for-19 over the last week and his average has dropped to .309. ... Giants 1B Michael Morse was scratched from the lineup after fouling a ball off his foot during batting practice. Morse had an extra-base hit in the team's last six games.