DETROIT -- Gary Sheffield made a long wait worthwhile for the Detroit Tigers.
Sheffield hit a game-winning RBI single in the bottom of the ninth to give Detroit an 8-7 victory against the St. Louis Cardinals on Wednesday night in a game that included a nearly 2½-hour rain delay.
Sheffield, who came off the disabled list Tuesday and hit a home run, and Carlos Guillen each had four hits for Detroit. Guillen also hit a home run.
Rick Ankiel hit two homers and drove in three runs, and Skip Schumaker also homered for St. Louis.
Clete Thomas led off the ninth with a double off the left-field wall. Sheffield then lined Kyle McClellan's 3-2 pitch into right-center to score Thomas.
"It was a long night. We knew this team was going to be tough," Sheffield said. "We knew we had to keep plugging away and give ourselves a chance in the ninth inning and we did that."
He hit a pitch toward the outside of the plate.
"With him, you don't want to miss inside. So I figured I'd go outside," McClellan said. "It was the wrong pitch."
Sheffield has struggled to come back from offseason shoulder surgery and was on the disabled list with a pulled oblique muscle.
"He certainly swung the bat good tonight," Tigers manager Jim Leyland said. "Some more of that would be just what the doctor ordered for us. That was a heck of a performance by him."
Sheffield is hitting .234 with four home runs and 15 RBI in 41 games.
"Everybody knows he's a pretty good hitter," Guillen said. "Only thing is he needs to be healthy. Stay healthy, and he can do a lot of good things."
Todd Jones (3-0) pitched a perfect ninth.
"It's weird. You never really realize it until you're in a rain delay how regimented baseball is and how systematic it is," Jones said. "You get this time of the night, it's time to be this inning and you sit for two-and-a-half hours, it throws the whole program off. I think rain delays when you win them like this are great. When you don't, it's rough."
McClellan (0-3) allowed three hits in an inning-plus.
Tigers starter Armando Galarraga allowed five runs and eight hits in 4 2/3 innings and the Cardinals' Kyle Lohse gave up five runs and 11 hits in four innings.
Aaron Miles' two-out RBI single gave St. Louis a 7-6 lead in the top of the eighth, but Magglio Ordonez's two-out, run-scoring single in the bottom of the inning tied it for Detroit.
"That was a tough eighth-inning lead to give up," Cardinals manager Tony La Russa said.
The game was delayed by rain for 2 hours, 25 minutes in the top of the fifth inning and didn't end until 12:51 a.m.
"It's tough to get it going. You come in here, sit around and get stiff," Ankiel said. "And then go back out there and try and get it going."
Schumaker connected on the game's first pitch and Ankiel went deep one out later. Ankiel's second home run, and 14th of the season, tied the game at 5 in the fifth, two batters before the rain delay.
La Russa said star first baseman Albert Pujols, who is on the disabled list with a calf strain, is expected to be activated on Thursday. ... Tigers CF Curtis Granderson was 2-for-4 to stretch his hitting streak to 13 games, which ties a career high. ... Detroit placed C/3B Brandon Inge on the 15-day disabled list with a pulled oblique and purchased the contract of C Dane Sardinha from Triple-A Toledo. ... The Tigers also traded right-handed pitcher Denny Bautista to the Pittsburgh Pirates for minor league right-handed pitcher Kyle Pearson.