Matt Carpenter replaced an ailing Carlos Beltran, then hit a two-run homer to give the Cardinals a 3-1 win over the Giants and a 2-1 NLCS lead in a game delayed 3½ hours by rain.