According to research by the Elias Sports Bureau provided by the team, Cain was the first Giants pitcher to give up so many runs in a single inning since John Cronin on Sept. 27, 1902, in the second game of New York's doubleheader against Brooklyn.
Adam Wainwright (1-1) pitched seven innings, giving up two runs on seven hits for his first win since signing a rich new contract at the end of spring training. He struck out six and walked none.
Cain pitched a perfect game last year and helped the Giants win their second title in three seasons. The pregame ceremony included the presentation of rings to Giants Hall of Famers Willie Mays, Willie McCovey, Orlando Cepeda, Juan Marchial and Gaylord Perry.
Cain retired the first nine batters, then gave up seven hits while getting just two outs in the fourth. Beltran, Carpenter and Matt Adams each drove in two runs during the outburst. Cain left after Carpenter's two-run single.
Back in 2008, the Cardinals scored nine runs against Cain spread out over 3 2-3 innings.
Adams finished with three hits, including a two-run double in the fourth.
The Giants gave up their most runs in an inning since 2004 when Cincinnati scored 10 in the eighth.
The Cardinals' team record is 12 in an inning, accomplished last July.
NOTES: Cardinals 3B David Freese was 3 for 5 with 2 RBIs in a rehab game with Triple-A Memphis. ... LHP Jamie Garcia (1-0, 1.59) starts Monday night for the Cardinals against Cincinnati. His eight wins against the Reds are his most against any team. ... Carpenter is 6 for 7 in two games against Cain. ... LHP Madison Bumgarner (1-0, 0.00) starts for the Giants on Monday night against the Colorado Rockies. He has a career 2.39 ERA against the Rockies. ... Cain is 2-4 with a 6.18 ERA in nine starts against St. Louis.
Link to box score: St. Louis 14 at San Francisco 3