ST. LOUIS -- Michael Morse continued to add to his resume as one of the offseason's best free agent signings.

The San Francisco first baseman capped a three-run rally in the top of the eighth inning Thursday night with a tiebreaking two-run double as the Giants defeated St. Louis 6-5 at Busch Stadium.

Morse lined an 0-1 pitch from closer Trevor Rosenthal into center field and the ball skipped past a diving Peter Bourjos, scoring center fielder Angel Pagan and third baseman Pablo Sandoval. It finished a three-RBI game for Morse, giving him a team-high 37.

Earlier in the eighth, Bourjos' throwing error on Pagan's one-out single against reliever Carlos Martinez (0-3) allowed left fielder Gregor Blanco to score the tying run.

Reliever Javier Lopez (1-0) obtained the seventh inning's last two outs for the win. Closer Sergio Romo bagged his 17th save despite allowing a two-out RBI single to third baseman Matt Carpenter as San Francisco upped its MLB-best record to 35-19.

Sandoval stretched his string of games with an RBI to nine with a two-out homer off Jaime Garcia in the top of the sixth. The last Giant to accomplish that was Barry Bonds, who did it from Sept. 4 to Sept. 13, 2000.

First baseman Allen Craig went 2-for-3 with two RBIs for the Cardinals (29-25), including a leadoff homer to right center in the sixth that gave them a 4-3 lead.

Garcia pitched seven solid innings for St. Louis, allowing five hits and three runs with no walks and seven strikeouts. Ryan Vogelsong worked the first 6 1/3 innings for San Francisco, allowing seven hits and four runs with three walks and five strikeouts.

St. Louis opened the scoring in the bottom of the first. Craig bounced a ground-rule double into the seats down the right field line to plate Carpenter, who led off with a single and stole second with Craig hitting.

San Francisco answered two pitches into the second inning as Morse blasted his 11th homer of the season, a 442-foot shot to left-center field. Blanco gave the Giants a 2-1 lead with a two-out RBI single to right, scoring second baseman Brandon Hicks.

The Cardinals responded in the fourth. Shortstop Jhonny Peralta's double-play grounder with the bases loaded scored left fielder Matt Holliday with the tying run, and right fielder Jon Jay's single to right-center chased Craig home for a 3-2 edge.

NOTES: San Francisco C Buster Posey (lower back) did not start Thursday night's game against the Cardinals but was available to pinch hit. That has been a recurring issue for Posey, although he has played in 49 of the team's first 53 games. ... St. Louis 1B Matt Adams (left calf) did not start for the second straight game after feeling tightness on Tuesday night. Adams was able to pinch hit on Wednesday night in the ninth inning and struck out. ... The Giants still have not officially announced their starting pitcher for Saturday's game, although RHP Matt Cain (hamstring) made it through a bullpen session on Wednesday with no problems.