ST. LOUIS (AP) -- Jake Peavy hopes he gave up four homers in a game for the last time. His manager is sure of it.
"I'm going to go on the record and say that'll never happen again in Jake's career," Padres manager Bud Black said. "Normally, I tell my pitchers solos don't beat you, but tonight they did."
The Cardinals never even had a runner in scoring position.
It was only the second time in his seven-year career that Peavy (7-6) allowed four homers in a game. The other was July 9, 2003, at Arizona. He gave up eight hits and struck out seven in seven innings.
"Solo home runs can't beat you but you can't give up four of them on the night," Peavy said. "It was just one of those things. I wasn't aggressive enough."
Kyle Lohse (12-2) won his ninth straight decision, the most for St. Louis since Chris Carpenter won 13 in a row in 2005. Lohse pitched seven innings, allowing two runs, seven hits and two walks while striking out four.
"A lot goes into a winning streak," Lohse said. "They play great defense behind me and score runs."
Ryan Franklin pitched the ninth for his 13th save in 17 opportunities. He gave up a run on consecutive doubles by Kevin Kouzmanoff and Chase Headley before retiring the next three batters, stranding the tying run at third base.
"This guy has great guts," St. Louis manager Tony La Russa said. "That was a clutch recovery."
Glaus tied it at 1 in the second, snapping Peavy's 15-inning scoreless streak. The Cardinals took a 3-2 lead in the fourth on back-to-back shots by Ankiel and Glaus.
"When I was in the AL West, I faced him a lot," Glaus said. "He comes at you hard and fortunately, we were able to take advantage of a couple of mistakes. He didn't put them exactly where he wanted them."
Mather, a rookie pinch-hitting for Lohse, homered in the seventh.
"I've had a chance to get used to this role," Mather said. "He was pretty dirty through the whole game. I thought he'd try and get ahead of me and sneak one in there but he left one up. I was aggressive and looking for a fastball. I got it."
Glaus has hit four home runs in his last 16 at-bats. It was his 27th multihomer game and second this season. He did it July 2 against the New York Mets.
"It's getting warmer," Glaus said. "That's baseball. It's just a good stretch now."
San Diego has lost three straight and six of their last eight games. ... St. Louis became the fifth major league club to top the 2-million mark in attendance with a sold-out crowd of 42,148. ... This was the third time his season the Padres have allowed four homers in a game. It also happened April 2 against Houston and May 19 against St. Louis.