Updated

Brandon Belt's pinch-hit two-run double in the seventh inning proved to be the difference as the San Francisco Giants defeated the St. Louis Cardinals, 4-2, in the finale of a three-game set at Busch Stadium.

Randy Choate relieved St. Louis starter Tyler Lyons with runners on first and second and one out in the seventh before Belt, who replaced San Francisco starter Chad Gaudin, came through with the clutch two-bagger to left.

Gaudin (1-1), making his first start of the season, lasted six innings and allowed both St. Louis runs on four hits and also had five strikeouts.

"He went out there and threw strikes, quality strikes," Giants manager Bruce Bochy said of Gaudin. "He just did a great job. He actually went a little further than we even thought."

Hunter Pence drove in one run while Buster Posey went a perfect 4-for-4 for San Francisco, which put an end to a seven-game road losing streak.

Lyons (2-1), making his third career start and first at Busch Stadium, was charged for all four runs on eight hits over 6 1/3 innings. David Freese provided all of the Cardinals' offense with a two-run homer.

"I was inconsistent kind of from the beginning," Lyons admitted. "I didn't have great fastball command."

In the seventh, Belt changed the game and greeted Choate by taking the first pitch he saw into the left-center gap, plating Brandon Crawford and Gregor Blanco. Earlier in the frame, Lyons allowed Crawford to single and Blanco to walk with one out.

The two-run edge gave the struggling Giants just enough, and Sergio Romo earned his 15th save of the season after working around a single in the ninth.

Blanco's groundout, bringing home Joaquin Arias in the second, opened up the scoring and put the Giants ahead 1-0.

One inning later, Pence smacked an RBI double off the wall in center, trading places with Posey, to extend the lead to 2-0.

In the fourth, Freese figured out Gaudin and brought the Cardinals back. He launched a two-out, two-run shot just over the left-field wall to tie the game at 2-2.

Game Notes

Giants outfielder Angel Pagan (strained left hamstring) sat out for the eighth straight game ... Gaudin replaced Ryan Vogelsong, who is out with a fractured right hand ... Lyons had tossed seven innings of one-run ball in his first two career starts ... The Cardinals' starting pitching staff had a 13-game streak allowing three or fewer runs come to an end ... Cardinals catcher Yadier Molina and manager Mike Matheny were both ejected in the third after arguing a close play at first base.