SAN DIEGO -- The San Diego Padres kept alive their slim playoff hopes with a rare win against baseball's best team.
Ryan Klesko singled in the go-ahead run with none out in the eighth inning and the Padres beat St. Louis 7-3 Monday night, ending the Cardinals' nine-game winning streak.
"We know we can beat anybody when we're playing well," Klesko said. "We've just got to get back to playing like we were tonight."
The Padres won for just the second time in seven games, a stretch that included three losses at St. Louis last week.
The Padres are trying for their first postseason berth since 1998, when they made it to the World Series before being swept by the New York Yankees. They beat the Cardinals for just the seventh time in 40 games since the start of the 1999 season.
With the score tied at 3 and the bases loaded in the eighth, Klesko hit a chopper over the head of first baseman Albert Pujols to score Ramon Vazquez, who started for the second straight game in place of injured second baseman Mark Loretta.
The Padres quickly blew it open against reliever Cal Eldred. Khalil Greene followed with a sacrifice fly, Terrence Long had a pinch-hit RBI single and another run scored on the play on a throwing error by Pujols.
"We can't afford to have the Cardinals come in and sweep us," Klesko said. "We need to get our confidence back. This is a big boost to go out there and beat a team that swept the Dodgers, and us before that, and one of their best pitchers.
Vazquez started the winning rally with his third hit, a leadoff single to left off Eldred (3-1), who relieved Chris Carpenter to start the inning. Brian Giles singled to center, and both runners advanced on a wild pitch to Phil Nevin, who walked to load the bases.
Reliever Scott Linebrink (7-1) pitched 1 1-3 innings for the win.
Trevor Hoffman came on in the ninth with runners on first and third and none out but retired the side to record his 35th save in 39 opportunities.
Giles hit a two-run double off Carpenter to highlight the three-run fifth and give the Padres a 3-2 lead.
All three runs were unearned after third baseman Scott Rolen's two-base throwing error on Ramon Hernandez's one-out grounder.
Connect with the Southeast Missourian Newsroom:
For corrections to this story or other insights for the editor, click here. To submit a letter to the editor, click here. To learn about the Southeast Missourian’s AI Policy, click here.