MIAMI - The Marlins and Cardinals kept playing and playing until Fernando Vina got his first hit of a long day.
Vina, 0-for-9 when he stepped to the plate, hit a run-scoring single in the 20th inning, lifting the Cardinals over the Marlins 7-6 Sunday in the longest game in 10 years.
"I was battling as much as I could, still trying to get my rhythm," Vina said. "Who would have thought I would win the game? You pull off something like this and it's a good feeling."
Vina's two-out single to right drove in Edgar Renteria with the go-ahead run and the Marlins went down in order in the bottom half, ending the longest game since Aug. 31, 1993, when Minnesota beat Cleveland 5-4 in 22.
It was the longest game in Marlins history, surpassing the 17 innings they played against Toronto on June 8, 1998. It was the second-longest game for the Cardinals; they played 25 innings against the Mets in 1974.
By the time it ended after 6 hours, 7 minutes, many of the announced 10,075 had left. A steady drizzle that started in the 18th chased some fans away.
The Cardinals took a 6-1 lead into the bottom of the ninth before Florida rallied to tie. Mike Lowell, Luis Castillo and Ramon Castro homered to spark the comeback.
"We were so excited in the ninth," said Lowell, who hit the tying homer. "I would never have thought then that we'd be playing for as long as we did. Right now, I'm tired. I feel dead."
Tino Martinez went 5-for-8 for St. Louis. Lowell and Derrek Lee each drew four of the Marlins' 16 walks. The three intentional walks issued to Lowell tied a major-league record.
There were 622 pitches, 337 by seven St. Louis pitchers. The Marlins used eight pitchers.
REDS 7, PADRES 5: Paul Wilson thought aggressiveness was the key to his first win for host Cincinnati.
The former Rays right-hander overcame three home runs, two by Ryan Klesko. He also gave up a homer to Ramon Vazquez but still beat San Diego for the first time in six career decisions.
"The key was I was still aggressive," Wilson said. "I got ahead of hitters and challenged them, and that was the difference."
D'BACKS 6-7, METS 1-3: Randy Johnson came off the disabled list to strike out 12 and earn his first win of the season, leading visiting Arizona to a sweep.
Brandon Webb struck out 10 in seven scoreless innings of his first major-league start and Craig Counsell tied his career high with four RBIs in the opener.
ROCKIES 6, CUBS 3: Darren Oliver won for the first time in nearly a year, and Charles Johnson had a homer and four RBIs as Colorado won its fourth straight home series by taking two of three.
BRAVES 7, BREWERS 1: Marcus Giles had three hits and two RBIs, leading Russ Ortiz and host Atlanta. The right-handed Giles improved to 12-for-20 (.600) against lefties. He's hitting .363 overall.
ASTROS 6, EXPOS 3: Jeff Bagwell hit his major league-leading 10th home run and Jeff Kent hit a three-run shot as visiting Houston stopped a four-game losing streak.
DODGERS 6, PIRATES 2: Light-hitting Cesar Izturis drove in the decisive run and Los Angeles finished a three-game sweep and Pittsburgh's worst homestand in 10 years (3-9).